B.2. 수동으로 Ceph Manager 설치
일반적으로 Ansible 자동화 유틸리티는 Red Hat Ceph Storage 클러스터를 배포할 때 Ceph Manager 데몬(ceph-mgr
)을 설치합니다. 그러나 Ansible을 사용하여 Red Hat Ceph Storage를 관리하지 않는 경우 Ceph Manager를 수동으로 설치할 수 있습니다. Red Hat은 동일한 노드에서 Ceph Manager 및 Ceph Monitor 데몬을 배치하는 것이 좋습니다.
사전 요구 사항
- 작동하는 Red Hat Ceph Storage 클러스터
-
root
또는sudo
액세스 -
rhel-7-server-rhceph-3-mon-els-rpms
리포지토리 활성화 -
방화벽이 사용되는 경우 공용 네트워크에서 포트
6800-7300
절차
ceph-mgr
가 배포되는 노드에서 및 root
사용자로 또는 sudo
유틸리티를 사용하여 다음 명령을 사용합니다.
ceph-mgr
패키지를 설치합니다.[user@node1 ~]$ sudo apt-get install ceph-mgr
/var/lib/ceph/mgr/ceph-호스트 이름/
디렉터리를 생성합니다.mkdir /var/lib/ceph/mgr/ceph-hostname
hostname 을
ceph-mgr
데몬이 배포될 노드의 호스트 이름으로 교체합니다. 예를 들면 다음과 같습니다.[user@node1 ~]$ sudo mkdir /var/lib/ceph/mgr/ceph-node1
새로 생성된 디렉터리에서
ceph-mgr
데몬에 대한 인증 키를 생성합니다.[user@node1 ~]$ sudo ceph auth get-or-create mgr.`hostname -s` mon 'allow profile mgr' osd 'allow *' mds 'allow *' -o /var/lib/ceph/mgr/ceph-node1/keyring
/var/lib/ceph/mgr/
디렉터리의 소유자 및 그룹을ceph:ceph
로 변경합니다.[user@node1 ~]$ sudo chown -R ceph:ceph /var/lib/ceph/mgr
ceph-mgr
대상을 활성화합니다.[user@node1 ~]$ sudo systemctl enable ceph-mgr.target
ceph-mgr
인스턴스를 활성화하고 시작합니다.systemctl enable ceph-mgr@hostname systemctl start ceph-mgr@hostname
hostname 을
ceph-mgr
이 배포할 노드의 호스트 이름으로 교체합니다. 예를 들면 다음과 같습니다.[user@node1 ~]$ sudo systemctl enable ceph-mgr@node1 [user@node1 ~]$ sudo systemctl start ceph-mgr@node1
ceph-mgr
데몬이 시작되었는지 확인합니다.ceph -s
출력에는
services:
섹션 아래의 다음 행과 유사한 행이 포함됩니다.mgr: node1(active)
-
현재 활성 데몬이 실패하는 경우 더 많은
ceph-mgr
데몬을 설치하여 대기 데몬으로 작동합니다.
추가 리소스
OSD 부팅
초기 모니터가 실행되면 OSD(오브젝트 스토리지 장치)를 추가할 수 있습니다. 오브젝트 사본 수를 처리하기에 충분한 OSD가 있을 때까지 클러스터는 활성 + 클린
상태에 도달할 수 없습니다.
오브젝트의 기본 사본 수는 3입니다. 최소 3개의 OSD 노드가 필요합니다. 그러나 오브젝트의 두 사본만 원하는 경우 두 개의 OSD 노드만 추가한 다음, Ceph 구성 파일에서 osd 풀 기본 크기
및 osd 풀의 기본 min size
설정을 업데이트합니다.
자세한 내용은 Red Hat Ceph Storage 3 구성 가이드의 OSD 구성 참조 섹션을 참조하십시오.
초기 모니터를 부트 스트랩하면 클러스터에 기본 CRUSH 맵이 있습니다. 그러나 CRUSH 맵에는 Ceph 노드에 매핑된 Ceph OSD 데몬이 없습니다.
클러스터에 OSD를 추가하고 기본 CRUSH 맵을 업데이트하려면 각 OSD 노드에서 다음을 실행합니다.
Red Hat Ceph Storage 3 OSD 리포지토리를 활성화합니다.
$ sudo bash -c 'umask 0077; echo deb https://customername:customerpasswd@rhcs.download.redhat.com/3-updates/OSD $(lsb_release -sc) main | tee /etc/apt/sources.list.d/OSD.list' $ sudo bash -c 'wget -O - https://www.redhat.com/security/fd431d51.txt | apt-key add -' $ sudo apt-get update
root
로 Ceph OSD 노드에ceph-osd
패키지를 설치합니다.$ sudo apt-get install ceph-osd
초기 Monitor 노드에서 OSD 노드로 Ceph 구성 파일 및 관리 인증 키 파일을 복사합니다.
구문
# scp <user_name>@<monitor_host_name>:<path_on_remote_system> <path_to_local_file>
예제
# scp root@node1:/etc/ceph/ceph.conf /etc/ceph # scp root@node1:/etc/ceph/ceph.client.admin.keyring /etc/ceph
OSD에 대한 UUID(Universally Unique Identifier)를 생성합니다.
$ uuidgen b367c360-b364-4b1d-8fc6-09408a9cda7a
root
로서 OSD 인스턴스를 생성합니다.구문
# ceph osd create <uuid> [<osd_id>]
예제
# ceph osd create b367c360-b364-4b1d-8fc6-09408a9cda7a 0
참고이 명령은 후속 단계에 필요한 OSD 번호 식별자를 출력합니다.
루트
로서 새 OSD에 대한 기본 디렉토리를 만듭니다.구문
# mkdir /var/lib/ceph/osd/<cluster_name>-<osd_id>
예제
# mkdir /var/lib/ceph/osd/ceph-0
루트
로서 OSD로 사용할 드라이브를 준비한 후 방금 생성한 디렉터리에 마운트합니다. Ceph 데이터 및 저널용 파티션을 만듭니다. 저널 및 데이터 파티션은 동일한 디스크에 있을 수 있습니다. 이 예에서는 15GB 디스크를 사용합니다.구문
# parted <path_to_disk> mklabel gpt # parted <path_to_disk> mkpart primary 1 10000 # mkfs -t <fstype> <path_to_partition> # mount -o noatime <path_to_partition> /var/lib/ceph/osd/<cluster_name>-<osd_id> # echo "<path_to_partition> /var/lib/ceph/osd/<cluster_name>-<osd_id> xfs defaults,noatime 1 2" >> /etc/fstab
예제
# parted /dev/sdb mklabel gpt # parted /dev/sdb mkpart primary 1 10000 # parted /dev/sdb mkpart primary 10001 15000 # mkfs -t xfs /dev/sdb1 # mount -o noatime /dev/sdb1 /var/lib/ceph/osd/ceph-0 # echo "/dev/sdb1 /var/lib/ceph/osd/ceph-0 xfs defaults,noatime 1 2" >> /etc/fstab
루트
로서 OSD 데이터 디렉터리를 초기화합니다.구문
# ceph-osd -i <osd_id> --mkfs --mkkey --osd-uuid <uuid>
예제
# ceph-osd -i 0 --mkfs --mkkey --osd-uuid b367c360-b364-4b1d-8fc6-09408a9cda7a ... auth: error reading file: /var/lib/ceph/osd/ceph-0/keyring: can't open /var/lib/ceph/osd/ceph-0/keyring: (2) No such file or directory ... created new key in keyring /var/lib/ceph/osd/ceph-0/keyring
참고--mkkey
옵션을 사용하여ceph-osd
를 실행하기 전에 디렉터리가 비어 있어야 합니다. 사용자 지정 클러스터 이름이 있는 경우ceph-osd
유틸리티에--cluster
옵션이 필요합니다.root
로 OSD 인증 키를 등록합니다. 클러스터 이름이ceph
와 다른 경우 클러스터 이름을 대신 삽입합니다.구문
# ceph auth add osd.<osd_id> osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/<cluster_name>-<osd_id>/keyring
예제
# ceph auth add osd.0 osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/ceph-0/keyring added key for osd.0
root
로서 OSD 노드를 CRUSH 맵에 추가합니다.구문
# ceph [--cluster <cluster_name>] osd crush add-bucket <host_name> host
예제
# ceph osd crush add-bucket node2 host
root
로 OSD 노드를기본
CRUSH 트리 아래에 배치합니다.구문
# ceph [--cluster <cluster_name>] osd crush move <host_name> root=default
예제
# ceph osd crush move node2 root=default
root
로서 OSD 디스크를 CRUSH 맵에 추가합니다.구문
# ceph [--cluster <cluster_name>] osd crush add osd.<osd_id> <weight> [<bucket_type>=<bucket-name> ...]
예제
# ceph osd crush add osd.0 1.0 host=node2 add item id 0 name 'osd.0' weight 1 at location {host=node2} to crush map
참고CRUSH 맵을 컴파일하고 장치 목록에 OSD를 추가할 수도 있습니다. OSD 노드를 버킷으로 추가한 다음 장치를 OSD 노드의 항목으로 추가하고 OSD에 가중치를 할당하고 CRUSH 맵을 다시 컴파일하고 CRUSH 맵을 설정합니다. 자세한 내용은 Red Hat Ceph Storage 3용 스토리지 전략 가이드 의 CRUSH 맵 편집 섹션을 참조하십시오.
root
로서 새로 생성된 디렉터리 및 파일에 대한 소유자 및 그룹 권한을 업데이트합니다.구문
# chown -R <owner>:<group> <path_to_directory>
예제
# chown -R ceph:ceph /var/lib/ceph/osd # chown -R ceph:ceph /var/log/ceph # chown -R ceph:ceph /var/run/ceph # chown -R ceph:ceph /etc/ceph
사용자 지정 이름이 있는 스토리지 클러스터의 경우
root
로서/etc/default/ceph
파일에 다음 행을 추가합니다.구문
$ sudo echo "CLUSTER=<custom_cluster_name>" >> /etc/default/ceph
예제
$ sudo echo "CLUSTER=test123" >> /etc/default/ceph
OSD 노드는 Ceph 스토리지 클러스터 구성에 있습니다. 그러나 OSD 데몬은
다운
되어에서
입니다. 새 OSD는 데이터를받기
전에 실행해야 합니다.root
로 OSD 프로세스를 활성화하고 시작합니다.구문
$ sudo systemctl enable ceph-osd.target $ sudo systemctl enable ceph-osd@<osd_id> $ sudo systemctl start ceph-osd@<osd_id>
예제
$ sudo systemctl enable ceph-osd.target $ sudo systemctl enable ceph-osd@0 $ sudo systemctl start ceph-osd@0
OSD 데몬을 시작하면
up
및 입니다.
이제 모니터와 일부 OSD가 실행 중입니다. 다음 명령을 실행하여 배치 그룹 피어를 확인할 수 있습니다.
$ ceph -w
OSD 트리를 보려면 다음 명령을 실행합니다.
$ ceph osd tree
예제
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY -1 2 root default -2 2 host node2 0 1 osd.0 up 1 1 -3 1 host node3 1 1 osd.1 up 1 1
스토리지 클러스터에 새 OSD를 추가하여 스토리지 용량을 확장하려면 Red Hat Ceph Storage 3 관리 가이드 의 OSD 추가 섹션을 참조하십시오.