Red Hat Training
A Red Hat training course is available for Red Hat Ceph Storage
부록 B. 수동으로 Red Hat Ceph Storage 설치
Red Hat은 수동으로 배포된 클러스터 업그레이드를 지원하거나 테스트하지 않습니다. 따라서 Red Hat은 Ansible을 사용하여 Red Hat Ceph Storage 3을 사용하여 새 클러스터를 배포하는 것이 좋습니다. 자세한 내용은 3장. Red Hat Ceph Storage 배포 을 참조하십시오.
YUM과 같은 명령줄 유틸리티를 사용하여 수동으로 배포된 클러스터를 설치할 수 있습니다.
모든 Ceph 클러스터에는 하나 이상의 모니터가 필요하며, 클러스터에 저장된 오브젝트의 사본으로 최소 개수의 OSD가 필요합니다. Red Hat은 프로덕션 환경에 세 개의 모니터와 최소 3개의 오브젝트 스토리지 장치(OSD)를 사용하는 것이 좋습니다.
명령줄 인터페이스를 사용하여 Ceph 스토리지 클러스터를 설치하려면 다음 단계를 수행해야 합니다.
B.1. 사전 요구 사항
Red Hat Ceph Storage의 네트워크 시간 프로토콜 구성
모든 Ceph 모니터 및 OSD 노드는 NTP(Network Time Protocol)를 구성해야 합니다. Ceph 노드가 NTP 피어인지 확인합니다. NTP는 클럭 드리프트에서 발생하는 문제를 선점하는 데 도움이 됩니다.
Ansible을 사용하여 Red Hat Ceph Storage 클러스터를 배포할 때 Ansible은 자동으로 NTP를 설치, 구성 및 활성화합니다.
사전 요구 사항
- 유효한 시간 소스에 대한 네트워크 액세스.
프로시저: RHCS의 네트워크 시간 프로토콜 구성
root 사용자로 스토리지 클러스터의 모든 RHCS 노드에서 다음 단계를 수행합니다.
ntp패키지를 설치합니다.# yum install ntp
재부팅 시 NTP 서비스를 시작하고 활성화합니다.
# systemctl start ntpd # systemctl enable ntpd
NTP가 클럭을 올바르게 동기화하는지 확인합니다.
$ ntpq -p
추가 리소스
- Red Hat Enterprise Linux 7용 시스템 관리자 가이드의 ntpd를 사용하여 NTP 구성 장.
Bootstrapping 모니터링
모니터를 부트 스트랩하고 Ceph 스토리지 클러스터를 확장하여 다음 데이터가 필요합니다.
- 고유 식별자
-
파일 시스템 식별자(
fsid)는 클러스터의 고유 식별자입니다.fsid는 Ceph 스토리지 클러스터가 기본적으로 Ceph 파일 시스템에 사용될 때 사용되었습니다. Ceph는 이제 기본 인터페이스, 블록 장치 및 오브젝트 스토리지 게이트웨이 인터페이스를 지원하므로fsid는 약간 misnomer입니다. - 클러스터 이름
Ceph 클러스터에는 공백이 없는 간단한 문자열인 클러스터 이름이 있습니다. 기본 클러스터 이름은
ceph이지만 다른 클러스터 이름을 지정할 수 있습니다. 기본 클러스터 이름을 재정의하는 것은 여러 클러스터에서 작업할 때 특히 유용합니다.다중 사이트 아키텍처에서 여러 클러스터를 실행하는 경우 클러스터 이름(예:
us-west)은 현재 명령줄 세션에 대한 클러스터를 식별합니다.참고명령줄 인터페이스에서 클러스터 이름을 확인하려면 클러스터 이름(예:
ceph.conf,us-west.conf,us-east.conf등)을 사용하여 Ceph 구성 파일을 지정합니다.예제:
# ceph --cluster us-west.conf ...
- 모니터링 이름
-
클러스터 내의 각 모니터 인스턴스마다 고유한 이름이 있습니다. 일반적으로 Ceph Monitor 이름은 노드 이름입니다. Red Hat은 노드당 하나의 Ceph Monitor를 권장하고 Ceph OSD 데몬을 함께 배치하지 않는 것이 좋습니다. 짧은 노드 이름을 검색하려면
hostname -s명령을 사용합니다. - 모니터링 맵
초기 모니터를 부트 스트랩하려면 모니터 맵을 생성해야 합니다. 모니터 맵에는 다음이 필요합니다.
-
파일 시스템 식별자(fs
id) -
클러스터 이름 또는
ceph의 기본 클러스터 이름이 사용됩니다. - 하나 이상의 호스트 이름과 IP 주소.
-
파일 시스템 식별자(fs
- 키 링 모니터링
- 모니터는 시크릿 키를 사용하여 서로 통신합니다. Monitor 시크릿 키를 사용하여 인증 키를 생성하고 초기 모니터를 부트스트랩할 때 제공해야 합니다.
- 관리자 키 링
-
ceph명령줄 인터페이스 유틸리티를 사용하려면client.admin사용자를 생성하고 인증 키를 생성합니다. 또한 Monitor 인증 키에client.admin사용자를 추가해야 합니다.
예상 요구 사항은 Ceph 구성 파일 생성을 보장하지 않습니다. 하지만 모범 사례로 Ceph 구성 파일을 만들고 fsid, mon initial members 및 mon host 설정으로 채우는 것이 좋습니다.
런타임 시 모든 Monitor 설정을 가져오고 설정할 수 있습니다. 그러나 Ceph 구성 파일에는 기본값을 재정의하는 설정만 포함될 수 있습니다. Ceph 구성 파일에 설정을 추가하면 이러한 설정이 기본 설정을 재정의합니다. Ceph 구성 파일에서 이러한 설정을 유지 관리하면 클러스터를 보다 쉽게 유지 관리할 수 있습니다.
초기 모니터를 부트 스트랩하려면 다음 단계를 수행합니다.
Red Hat Ceph Storage 3 Monitor 리포지토리를 활성화합니다.
[root@monitor ~]# subscription-manager repos --enable=rhel-7-server-rhceph-3-mon-els-rpms
초기 모니터 노드에서
root로ceph-mon패키지를 설치합니다.# yum install ceph-mon
root로서/etc/ceph/디렉터리에 Ceph 구성 파일을 만듭니다. 기본적으로 Ceph는ceph.conf를 사용합니다. 여기서ceph는 클러스터 이름을 반영합니다.구문
# touch /etc/ceph/<cluster_name>.conf
예제
# touch /etc/ceph/ceph.conf
root로 클러스터의 고유 식별자를 생성하고 Ceph 구성 파일의[global]섹션에 고유 식별자를 추가합니다.구문
# echo "[global]" > /etc/ceph/<cluster_name>.conf # echo "fsid = `uuidgen`" >> /etc/ceph/<cluster_name>.conf
예제
# echo "[global]" > /etc/ceph/ceph.conf # echo "fsid = `uuidgen`" >> /etc/ceph/ceph.conf
현재 Ceph 구성 파일을 확인합니다.
$ cat /etc/ceph/ceph.conf [global] fsid = a7f64266-0894-4f1e-a635-d0aeaca0e993
root로서 초기 Monitor를 Ceph 구성 파일에 추가합니다.구문
# echo "mon initial members = <monitor_host_name>[,<monitor_host_name>]" >> /etc/ceph/<cluster_name>.conf
예제
# echo "mon initial members = node1" >> /etc/ceph/ceph.conf
root로서 초기 Monitor의 IP 주소를 Ceph 구성 파일에 추가합니다.구문
# echo "mon host = <ip-address>[,<ip-address>]" >> /etc/ceph/<cluster_name>.conf
예제
# echo "mon host = 192.168.0.120" >> /etc/ceph/ceph.conf
참고IPv6 주소를 사용하려면
ms bind ipv6옵션을true로 설정합니다. 자세한 내용은 Red Hat Ceph Storage 3 구성 가이드의 Bind 섹션을 참조하십시오.root로 클러스터에 대한 인증 키를 생성하고 Monitor 시크릿 키를 생성합니다.구문
# ceph-authtool --create-keyring /tmp/<cluster_name>.mon.keyring --gen-key -n mon. --cap mon '<capabilites>'
예제
# ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *' creating /tmp/ceph.mon.keyring
root로 관리자 인증 키를 생성하고<cluster_name>.client.admin.keyring사용자를 생성하고 사용자를 인증 키에 추가합니다.구문
# ceph-authtool --create-keyring /etc/ceph/<cluster_name>.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon '<capabilites>' --cap osd '<capabilites>' --cap mds '<capabilites>'
예제
# ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow' creating /etc/ceph/ceph.client.admin.keyring
루트로서<cluster_name>.client.admin.keyring키를<cluster_name>.mon.keyring:에 추가합니다.구문
# ceph-authtool /tmp/<cluster_name>.mon.keyring --import-keyring /etc/ceph/<cluster_name>.client.admin.keyring
예제
# ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring importing contents of /etc/ceph/ceph.client.admin.keyring into /tmp/ceph.mon.keyring
모니터 맵을 생성합니다. 노드 이름, IP 주소 및
fsid를 초기 모니터로 사용하여 지정하고/tmp/monmap으로 저장합니다.구문
$ monmaptool --create --add <monitor_host_name> <ip-address> --fsid <uuid> /tmp/monmap
예제
$ monmaptool --create --add node1 192.168.0.120 --fsid a7f64266-0894-4f1e-a635-d0aeaca0e993 /tmp/monmap monmaptool: monmap file /tmp/monmap monmaptool: set fsid to a7f64266-0894-4f1e-a635-d0aeaca0e993 monmaptool: writing epoch 0 to /tmp/monmap (1 monitors)
초기 Monitor 노드에서
root로 기본 데이터 디렉터리를 생성합니다.구문
# mkdir /var/lib/ceph/mon/<cluster_name>-<monitor_host_name>
예제
# mkdir /var/lib/ceph/mon/ceph-node1
root로 초기 Monitor 데몬을 Monitor 맵 및 인증 키로 채웁니다.구문
# ceph-mon [--cluster <cluster_name>] --mkfs -i <monitor_host_name> --monmap /tmp/monmap --keyring /tmp/<cluster_name>.mon.keyring
예제
# ceph-mon --mkfs -i node1 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring ceph-mon: set fsid to a7f64266-0894-4f1e-a635-d0aeaca0e993 ceph-mon: created monfs at /var/lib/ceph/mon/ceph-node1 for mon.node1
현재 Ceph 구성 파일을 확인합니다.
# cat /etc/ceph/ceph.conf [global] fsid = a7f64266-0894-4f1e-a635-d0aeaca0e993 mon_initial_members = node1 mon_host = 192.168.0.120
다양한 Ceph 구성 설정에 대한 자세한 내용은 Red Hat Ceph Storage 3 구성 가이드를 참조하십시오. Ceph 구성 파일의 다음 예제에는 가장 일반적인 구성 설정이 나열되어 있습니다.
예제
[global] fsid = <cluster-id> mon initial members = <monitor_host_name>[, <monitor_host_name>] mon host = <ip-address>[, <ip-address>] public network = <network>[, <network>] cluster network = <network>[, <network>] auth cluster required = cephx auth service required = cephx auth client required = cephx osd journal size = <n> osd pool default size = <n> # Write an object n times. osd pool default min size = <n> # Allow writing n copy in a degraded state. osd pool default pg num = <n> osd pool default pgp num = <n> osd crush chooseleaf type = <n>
root로서완료된파일을 생성합니다.구문
# touch /var/lib/ceph/mon/<cluster_name>-<monitor_host_name>/done
예제
# touch /var/lib/ceph/mon/ceph-node1/done
root로서 새로 생성된 디렉터리 및 파일에 대한 소유자 및 그룹 권한을 업데이트합니다.구문
# chown -R <owner>:<group> <path_to_directory>
예제
# chown -R ceph:ceph /var/lib/ceph/mon # chown -R ceph:ceph /var/log/ceph # chown -R ceph:ceph /var/run/ceph # chown ceph:ceph /etc/ceph/ceph.client.admin.keyring # chown ceph:ceph /etc/ceph/ceph.conf # chown ceph:ceph /etc/ceph/rbdmap
참고Ceph Monitor 노드가 OpenStack 컨트롤러 노드와 함께 배치되는 경우 Glance 및 Cinder 인증 키 파일을 각각
glance및cinder에서 소유해야 합니다. 예를 들면 다음과 같습니다.# ls -l /etc/ceph/ ... -rw-------. 1 glance glance 64 <date> ceph.client.glance.keyring -rw-------. 1 cinder cinder 64 <date> ceph.client.cinder.keyring ...
사용자 지정 이름이 있는 스토리지 클러스터의 경우
root로 다음 행을 추가합니다.구문
# echo "CLUSTER=<custom_cluster_name>" >> /etc/sysconfig/ceph
예제
# echo "CLUSTER=test123" >> /etc/sysconfig/ceph
root로 초기 Monitor 노드에서ceph-mon프로세스를 시작하고 활성화합니다.구문
# systemctl enable ceph-mon.target # systemctl enable ceph-mon@<monitor_host_name> # systemctl start ceph-mon@<monitor_host_name>
예제
# systemctl enable ceph-mon.target # systemctl enable ceph-mon@node1 # systemctl start ceph-mon@node1
root로서 모니터 데몬이 실행 중인지 확인합니다.구문
# systemctl status ceph-mon@<monitor_host_name>
예제
# systemctl status ceph-mon@node1 ● ceph-mon@node1.service - Ceph cluster monitor daemon Loaded: loaded (/usr/lib/systemd/system/ceph-mon@.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2018-06-27 11:31:30 PDT; 5min ago Main PID: 1017 (ceph-mon) CGroup: /system.slice/system-ceph\x2dmon.slice/ceph-mon@node1.service └─1017 /usr/bin/ceph-mon -f --cluster ceph --id node1 --setuser ceph --setgroup ceph Jun 27 11:31:30 node1 systemd[1]: Started Ceph cluster monitor daemon. Jun 27 11:31:30 node1 systemd[1]: Starting Ceph cluster monitor daemon...
스토리지 클러스터에 Red Hat Ceph Storage 모니터를 더 추가하려면 Red Hat Ceph Storage 3 관리 가이드의 모니터 추가 섹션을 참조하십시오.