7장. HA 컨트롤러 리소스 조사 및 수정
pcs constraint show 명령은 서비스 시작 방법에 대한 제약 조건을 표시합니다. 명령의 출력에는 각 리소스가 있는 위치, 시작되는 순서 및 함께 배치해야 하는 것과 관련된 제약 조건이 표시됩니다. 문제가 있는 경우 이러한 문제를 해결한 다음 리소스를 정리할 수 있습니다.
pcs constraint show 명령은 리소스가 위치(특정 호스트에서만 실행될 수 있음), 순서 지정(시작하기 전에 활성화할 다른 리소스에 종속됨) 또는 colocation(다른 리소스와 함께 배치됨)에 따라 리소스를 제한하는 방법을 표시합니다. 다음은 컨트롤러 노드에 있는 pcs constraint show 의 잘린 출력입니다.
$ sudo pcs constraint show Location Constraints: Resource: my-ipmilan-for-controller-0 Disabled on: overcloud-controller-0 (score:-INFINITY) Resource: my-ipmilan-for-controller-1 Disabled on: overcloud-controller-1 (score:-INFINITY) Resource: my-ipmilan-for-controller-2 Disabled on: overcloud-controller-2 (score:-INFINITY) Ordering Constraints: start ip-172.16.0.10 then start haproxy-clone (kind:Optional) start ip-10.200.0.6 then start haproxy-clone (kind:Optional) start ip-172.19.0.10 then start haproxy-clone (kind:Optional) start ip-192.168.1.150 then start haproxy-clone (kind:Optional) start ip-172.16.0.11 then start haproxy-clone (kind:Optional) start ip-172.18.0.10 then start haproxy-clone (kind:Optional) start mongod-clone then start openstack-ceilometer-central-clone (kind:Mandatory) start openstack-glance-registry-clone then start openstack-glance-api-clone (kind:Mandatory) start openstack-heat-api-clone then start openstack-heat-api-cfn-clone (kind:Mandatory) start delay-clone then start openstack-ceilometer-alarm-evaluator-clone (kind:Mandatory) ... Colocation Constraints: ip-172.16.0.10 with haproxy-clone (score:INFINITY) ip-172.18.0.10 with haproxy-clone (score:INFINITY) ip-10.200.0.6 with haproxy-clone (score:INFINITY) ip-172.19.0.10 with haproxy-clone (score:INFINITY) ip-172.16.0.11 with haproxy-clone (score:INFINITY) ip-192.168.1.150 with haproxy-clone (score:INFINITY) openstack-glance-api-clone with openstack-glance-registry-clone (score:INFINITY) openstack-cinder-volume with openstack-cinder-scheduler-clone (score:INFINITY) neutron-dhcp-agent-clone with neutron-openvswitch-agent-clone (score:INFINITY) ...
이 출력에는 다음 세 가지 주요 섹션이 표시됩니다.
- 위치 제한
- 이 섹션에서는 리소스가 할당된 위치에 대한 특정 제약 조건이 없음을 보여줍니다. 그러나 출력에서 ipmilan 리소스가 각 컨트롤러에서 비활성화되어 있음을 보여줍니다. 따라서 추가 조사가 필요합니다.
- 순서 제한
- 여기에서 가상 IP 주소 리소스(IPaddr2)가 HAProxy 앞에 시작되도록 설정되어 있습니다. openstack-ceilometer-central-clone 이전의 mongod-clone 시작 및 openstack-glance-api-clone 이전 openstack-glance-registry-clone 시작을 포함하여 많은 필수 주문 제한 사항이 있습니다. 이러한 제약 조건을 알고 있으면 서비스 간의 종속성을 이해하는 데 도움이 될 수 있습니다. 즉, 손상된 서비스 또는 다른 리소스를 수정할 수 있도록 필요한 종속성을 알고 있어야 합니다.
- 공동 배치 제한
- 이 섹션에서는 함께 배치해야 하는 리소스를 보여줍니다. 예를 들어 특정 가상 IP 주소는 haproxy-clone 리소스에 연결됩니다. 또한 openstack-glance-api-clone 리소스가 openstack-glance-registry-clone 리소스와 동일한 호스트에 있어야 합니다.
7.1. 컨트롤러에서 리소스 문제 해결
실패한 작업은 pcs status 명령으로 나열됩니다. 발생할 수 있는 다양한 종류의 문제가 있습니다. 일반적으로 다음과 같은 방법으로 문제에 접근할 수 있습니다.
- 컨트롤러 문제
컨트롤러에 대한 상태 점검이 실패하는 경우 컨트롤러에 로그인하고 문제 없이 서비스를 시작할 수 있는지 확인합니다. 서비스 시작 문제는 컨트롤러 간의 통신 문제를 나타낼 수 있습니다. 컨트롤러 간 통신 문제의 다른 표시는 다음과 같습니다.
- 컨트롤러가 다른 컨트롤러보다 명시적으로 펜싱되는 경우 및/또는
- 의심스럽게 많은 양의 서비스가 특정 컨트롤러에서 실패합니다.
- 개별 리소스 문제
- 컨트롤러의 서비스가 일반적으로 작동하지만 개별 리소스가 실패하는 경우 pcs 상태 메시지에서 문제를 파악할 수 있는지 확인합니다. 자세한 정보가 필요한 경우 리소스가 실패하는 컨트롤러에 로그인하고 다음 단계 중 일부를 시도합니다.
개별 실패한 리소스의 문제를 확인하려면 7장. HA 컨트롤러 리소스 조사 및 수정 에 설명된 주문 제한 조건 을 참조하십시오. 실패한 리소스가 종속된 모든 리소스가 실행 중인지 확인합니다. 그런 다음 하단에서 위로 이동하여 수정하십시오.
실패한 리소스의 이름과 실행 중인 컨트롤러의 이름이 지정되면 컨트롤러에 로그인하여 문제를 디버깅할 수 있습니다. 실패한 리소스가 systemd 서비스(예: openstack-ceilometer-api)인 경우 systemctl 을 사용하여 상태 및 journalctl 을 확인하여 저널 메시지를 검색할 수 있습니다. 예를 들면 다음과 같습니다.
$ sudo systemctl status openstack-ceilometer-api openstack-ceilometer-api.service - Cluster Controlled openstack-ceilometer-api Loaded: loaded (/usr/lib/systemd/system/openstack-ceilometer-api.service; disabled) Drop-In: /run/systemd/system/openstack-ceilometer-api.service.d └─50-pacemaker.conf Active: active (running) since Thu 2015-10-08 13:30:44 EDT; 1h 4min ago Main PID: 17865 (ceilometer-api) CGroup: /system.slice/openstack-ceilometer-api.service └─17865 /usr/bin/python /usr/bin/ceilometer-api --logfile /var/log/ceilometer/api.log Oct 08 13:30:44 overcloud-controller-2.localdomain systemd[1]: Starting Cluster Controlled openstack-ceilo..... Oct 08 13:30:44 overcloud-controller-2.localdomain systemd[1]: Started Cluster Controlled openstack-ceilom...i. Oct 08 13:30:49 overcloud-controller-2.localdomain ceilometer-api[17865]: /usr/lib64/python2.7/site-package.... $ sudo journalctl -u openstack-ceilometer-api -- Logs begin at Thu 2015-10-01 08:57:25 EDT, end at Thu 2015-10-08 14:40:18 EDT. -- Oct 01 11:22:41 overcloud-controller-2.localdomain systemd[1]: Starting Cluster Controlled openstack... Oct 01 11:22:41 overcloud-controller-2.localdomain systemd[1]: Started Cluster Controlled openstack-ceilometer-api... Oct 01 11:22:52 overcloud-controller-2.localdomain ceilometer-api[8918]: /usr/lib64/python2.7/...
실패한 리소스를 수정한 후에는 pcs resource cleanup 명령을 실행하여 리소스 상태 및 실패 수를 재설정할 수 있습니다. 예를 들어 httpd-clone 리소스의 문제를 찾아 수정한 후 다음을 실행합니다.
$ sudo pcs resource cleanup httpd-clone
Resource: httpd-clone successfully cleaned up