CEPH 운영 설치 배포(luminous)
11712 단어 Ceph
이 문서는 주로ceph의 구축 과정을 소개한다.
집단 계획
서버 계획 및 구성은 다음과 같습니다.
hostname
public ip
cluster ip
노드 설명
ch-osd-1
172.16.30.73
172.16.31.73
osd 노드
ch-osd-2
172.16.30.72
172.16.31.72
osd 노드
ch-osd-3
172.16.30.75
172.16.31.75
osd 노드
ch-osd-4
172.16.30.77
172.16.31.77
osd 노드
ch-mon-1
172.16.30.78
172.16.31.78
mon+rgw+manger 노드
ch-mon-2
172.16.30.79
172.16.31.79
mon+rgw 노드
ch-mon-3
172.16.30.80
172.16.31.80
mon+rgw 노드
- 운영체제: centos release 7.2 - CPU: OSD 노드는 Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz* 48, MON 노드는 Intel(R) Xeon(R) CPU E5-2650 @ 2.00GHz* 32; -메모리 크기: OSD는 256GB입니다.MON은 64GB - 데이터 하드디스크 구성(시스템 디스크 제외): OSD는 1.2TB SAS*3 및 480G SSD*1입니다. 그 중에서 SSD는 필요하지 않습니다. 여기에는 주로journal을 저장하고 MON은 단독으로 배치하면 데이터 디스크를 필요로 하지 않습니다. - 네트워크 설정: 퍼블릭 네트워크와cluster는 모두 만메가 광섬유입니다. - 서버당 1, 2개의 디스크를 RAID1로 합니다.나머지 디스크는 RAID0 -ch-mon-1 노드를 관리 노드로 하고ceph-deploy -Ceph 버전을 배치합니다. 현재 최신 버전 v12.1.2-ceph-deploy 버전: 1.5.38 - 여기는 루트 사용자를 사용하여 설치합니다. 루트 사용자가 아니라면 루트 권한을 가져야 합니다.
환경 준비
기초 환경 검사
rpm -ivh MegaCli-8.07.14-1.noarch.rpm
디스크 어레이 검사 도구인 Megacli를 사용하여 필요한 구성 정책을 충족하는지 확인합니다.
/opt/MegaRAID/MegaCli64 -LDGetProp -Cache -LALL -aALL
일반적으로 운영 체제를 설치하기 전에 각 하드 드라이브에 대해 디스크 어레이를 설정할 수 있으며, 공급업체마다 장치 디스크 어레이 구성이 약간 다르기 때문에 여기에는 상세한 설명이 없습니다.디스크 어레이가 없으면 디스크 어레이를 하고 MegaCli를 사용하여 디스크를 일상적으로 관리해야 합니다.
OSD 데이터 디스크를 RAID0으로 만들고 읽기, 쓰기, 캐시 정책을 설정합니다. 그 중에서 읽기 정책은 Read-Ahead입니다.쓰기 정책은 WriteBack이며 쓰기 캐시는 바로 반환됩니다.디스크 캐시 디스크 캐치를 disable로 설정합니다.입출력 정책은 Direct 요청이 시스템 Cache에 캐시되지 않습니다.디스크 번호가 10인 물리적 디스크에 RAID0 구성
/opt/MegaRAID/MegaCli64 -cfgldadd -r0 [32:10] WB RA RA -a0
혹은
/opt/MegaRAID/MegaCli64 -LDSetProp 10 WB -a0
/opt/MegaRAID/MegaCli64 -LDSetProp 10 RA -a0
/opt/MegaRAID/MegaCli64 -LDSetProp 10 RA -a0
SSD는 로그 디스크를 RAID0으로 만들고 읽기 정책은 Normal이며 미리 읽기가 적용되지 않으며 쓰기 정책은 Write Through로 디스크에 직접 쓰기입니다.SSD에 전원 끄기 보호가 있으면 디스크 캐시 디스크 캐시가 Enable로 설정됩니다.입출력 정책은 Direct 요청이 Cache에 캐시되지 않습니다.
/opt/MegaRAID/MegaCli64 -cfgldadd -r0 [32:13] WT NORA Direct -a0
Megacli의 상세한 사용은 참고 문서 1 등 다른 자료를 참고할 수 있다
기본 환경 구성
yum 소스 구성
여기에 yum 설치를 사용합니다. 저는 이미 CEPH 2진 RPM 패키지를 YUM 렌즈에 업로드했습니다. 그래서 CEPH가 사용할 수 있는 YUM 소스를 먼저 설정합니다. CEPH 자체와 EPEL 소스를 포함합니다. 아래와 같습니다.
[root@node-5 env-check-init]# cat /etc/yum.repos.d/CentOS.repo
...
[CENTOS7-epel]
name=CENTOS7 epel resource
baseurl=http://yum17.int.sfdc.com.cn/epel7Server/$basearch
enabled=1
gpgcheck=0
gpgkey=http://yum17.int.sfdc.com.cn/epel7/$basearch/RPM-GPG-KEY-EPEL-7
[CENTOS7-ceph]
name=CENTOS7 ceph resource
baseurl=http://yum17.int.sfdc.com.cn/ceph/el7/$basearch
enabled=1
gpgcheck=0
gpgkey=http://yum17.int.sfdc.com.cn/ceph/el7/$basearch/RPM-GPG-KEY-EPEL-7
힌트: 만약에 자신의 YUM 원본이 없다면 국내 개원 렌즈, 예를 들어 청화 렌즈, 중과대 렌즈, 아리 렌즈 등을 사용할 수 있고 Ceph 공식 문서에서 제시한 설정을 사용할 수 있습니다.
SSH 상호 신뢰
관리 노드와 다른 집단 노드를 위해 ssh 상호신뢰를 구축하여 관리 노드가 다른 각 노드에 검증하지 않고 로그인할 수 있도록 해야 한다
관리 노드에서 ssh keys를 생성합니다. 명령은 다음과 같습니다.
ssh-keygen
관리 노드의 ssh 키를 다른 노드로 복사합니다.
ssh-copy-id [email protected]
클러스터 배포
패키지 설치
관리 노드에ceph-deploy 설치
yum install ceph-deploy -y
각 노드에서 명령을 실행하는 Ceph 설치
yum install ceph -y
설치가 끝난 후 다음 명령을 사용하여 버전을 볼 수 있습니다
[root@ch-mon-1 ~]# ceph -v
ceph version 12.1.2 (b661348f156f148d764b998b65b90451f096cb27) luminous (rc)
동시에/etc 디렉터리에ceph 디렉터리가 추가된 것을 볼 수 있습니다./etc/ceph 디렉터리 진입
cd /etc/ceph
클러스터 생성
클러스터 초기화
모니터 노드 3개 준비
ceph-deploy new ch-mon-1 ch-mon-2 ch-mon-3
실행이 끝난 후에 이 디렉터리에서 다음과 같은 파일을 볼 수 있습니다
[root@ch-mon-1 ceph]# pwd
/etc/ceph
[root@ch-mon-1 ceph]# ll
-rw-r--r-- 1 root root 805 Aug 3 13:44 ceph.conf
-rw-r--r-- 1 root root 33736 Aug 3 13:45 ceph-deploy-ceph.log
-rw------- 1 root root 73 Aug 3 13:43 ceph.mon.keyring
클러스터 네트워크 구성과 같은 클러스터 구성을 계획하려면 다음과 같이 하십시오.
기본 구성
[root@ch-mon-1 ceph]# cat ceph.conf
[global]
fsid = 31fc3bef-d912-4d12-aa1e-130d3270d5db
mon_initial_members = ch-mon-1, ch-mon-2, ch-mon-3
mon_host = 172.16.30.78,172.16.30.79,172.16.30.80
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
수정 후
[root@ch-mon-1 ceph]# cat ceph.conf
[global]
fsid = 31fc3bef-d912-4d12-aa1e-130d3270d5db
mon_initial_members = ch-mon-1, ch-mon-2, ch-mon-3
mon_host = 172.16.30.78,172.16.30.79,172.16.30.80
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
public_network = 172.16.30.0/24
cluster_network = 172.16.31.0/24
osd_pool_default_size = 3
osd_pool_default_min_size = 1
osd_pool_default_pg_num = 8
osd_pool_default_pgp_num = 8
osd_crush_chooseleaf_type = 1
[mon]
mon_clock_drift_allowed = 0.5
[osd]
osd_mkfs_type = xfs
osd_mkfs_options_xfs = -f
filestore_max_sync_interval = 5
filestore_min_sync_interval = 0.1
filestore_fd_cache_size = 655350
filestore_omap_header_cache_size = 655350
filestore_fd_cache_random = true
osd op threads = 8
osd disk threads = 4
filestore op threads = 8
max_open_files = 655350
모니터 초기화
초기 모니터를 배치하고 키를 획득합니다
ceph-deploy mon create-initial
이 단계를 마치면 현재 디렉터리에 다음과 같은 키링이 있습니다.
[root@ch-mon-1 ceph]# ll
-rw------- 1 root root 71 Aug 3 13:45 ceph.bootstrap-mds.keyring
-rw------- 1 root root 71 Aug 3 13:45 ceph.bootstrap-mgr.keyring
-rw------- 1 root root 71 Aug 3 13:45 ceph.bootstrap-osd.keyring
-rw------- 1 root root 71 Aug 3 13:45 ceph.bootstrap-rgw.keyring
-rw------- 1 root root 63 Aug 3 13:45 ceph.client.admin.keyring
노드에서ceph 명령줄을 사용하려면ceph를 사용해야 합니다.client.admin.keyring은 필요한 노드의/etc/ceph 디렉터리에 놓입니다.만약 여기에 모든 노드에서 명령행을 사용하기를 원한다면, 아래의 명령을 통해ceph를 사용할 수 있습니다.client.admin.keyring을 각 노드로 복사하면cp 명령도 사용할 수 있습니다.
ceph-deploy admin ch-mon-2 ch-mon-3 ch-osd-1 ch-osd-2 ch-osd-3 ch-osd-4
L 버전의 Ceph에 관리자 데몬이 추가되었습니다. 다음 명령은 관리자 수호 프로세스를 배치합니다.
ceph-deploy mgr create ch-mon-1
OSDs 추가
저희가 사용하는 버전 백엔드 저장소는 기본적으로bluestore를 사용합니다.
OSDs 추가
ceph-deploy osd create ch-osd-1:/dev/sdb ch-osd-1:/dev/sdc ch-osd-1:/dev/sdd ch-osd-2:/dev/sdb ch-osd-2:/dev/sdc ch-osd-2:/dev/sdd ch-osd-3:/dev/sdb ch-osd-3:/dev/sdc ch-osd-3:/dev/sdd ch-osd-4:/dev/sdb ch-osd-4:/dev/sdc ch-osd-4:/dev/sdd
알림: 초기 버전에서 OSD 추가는prepare와activate 두 단계로 나뉘었습니다. 자세한 내용은 없습니다.
명령 실행이 끝나면 그룹 상태를 볼 수 있습니다
[root@ch-mon-1 ~]# ceph -s
cluster:
id: 31fc3bef-d912-4d12-aa1e-130d3270d5db
health: HEALTH_OK
services:
mon: 3 daemons, quorum ch-mon-1,ch-mon-2,ch-mon-3
mgr: ch-mon-1(active)
osd: 12 osds: 12 up, 12 in
data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 bytes
usage: 12742 MB used, 13386 GB / 13398 GB avail
pgs:
OSDs 보기
[root@ch-osd-1 ~]# ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 13.08472 root default
-3 3.27118 host ch-osd-1
0 hdd 1.09039 osd.0 up 1.00000 1.00000
1 hdd 1.09039 osd.1 up 1.00000 1.00000
2 hdd 1.09039 osd.2 up 1.00000 1.00000
-5 3.27118 host ch-osd-2
3 hdd 1.09039 osd.3 up 1.00000 1.00000
4 hdd 1.09039 osd.4 up 1.00000 1.00000
5 hdd 1.09039 osd.5 up 1.00000 1.00000
-7 3.27118 host ch-osd-3
6 hdd 1.09039 osd.6 up 1.00000 1.00000
7 hdd 1.09039 osd.7 up 1.00000 1.00000
8 hdd 1.09039 osd.8 up 1.00000 1.00000
-9 3.27118 host ch-osd-4
9 hdd 1.09039 osd.9 up 1.00000 1.00000
10 hdd 1.09039 osd.10 up 1.00000 1.00000
11 hdd 1.09039 osd.11 up 1.00000 1.00000
이로써 전체 집단은 건설이 끝났다.
현재 최신 버전인 Ceph에 대한 배치를 통해 알 수 있듯이 이전 버전, 예를 들어 생산에 대량으로 사용되는 Hammer 버전보다 배치가 간단하다. 물론 여기는 설정 최적화가 많지 않다.
상용 운송
모니터링 모듈 켜기
프로필/etc/ceph/ceph.conf에 추가
[mgr]
mgr modules = dashboard
혹은
ceph mgr module enable dashboard
대시보드의 IP와 포트를 설정합니다
ceph config-key put mgr/dashboard/server_addr 172.16.30.78
ceph config-key put mgr/dashboard/server_port 7000
mgr 서비스 재시작
[root@ch-osd-1 ~]# systemctl restart ceph-mgr@ch-mon-1
모니터 추가 / 제거
모니터 추가
모니터 삭제
먼저 삭제할 모니터 데몬을 중지합니다. 명령은 다음과 같습니다.
service ceph -a stop mon.{mon-id}
#for example
service ceph -a stop mon.ch-mon-1
그리고 모니터를 그룹에서 삭제합니다.
ceph mon remove {mon-id}
#for example
ceph mon remove ch-mon-1
마지막으로ceph를 삭제합니다.conf의 이 모니터 설정
더 상세한 사용 방법은 공식 문서를 보십시오
OSDs 추가 / 제거
OSD 추가
OSD 삭제
OSD를 삭제하기 전에 OSD는 보통 up과 in의 상태입니다. 먼저 삭제할 OSD를 그룹에서 꺼내서 그룹이rebalancing을 할 수 있도록 하고 데이터를 다른 OSD로 복사해야 합니다.관리 노드에서 OSD 클러스터 아웃 명령을 실행하려면 다음과 같이 하십시오.
ceph osd out {osd-num}
#for example
ceph osd out 2
일단 OSD가 집단에서 차출된 후, 집단은 삭제할 OSD의 PGs를 옮겨서 리밸런싱을 진행할 수 있으며, 우리는 아래의 명령을 통해 전체 과정을 관찰할 수 있다
ceph -w
주의: 소수의 서버만 있는 작은 그룹에서, 예를 들어 우리가 테스트한 그룹에서, 아웃 작업을 하면 일부 PGs가 시종일관active+remapped 상태에 있을 수 있습니다. 이때 osd를 in으로 되돌려 초기 상태
ceph osd in {osd-num}
로 돌아가야 합니다. 그리고 아웃 OSD가 아니라 OSD권을 0으로 다시 설정해야 합니다.ceph osd crush reweight osd.{osd-num} 0
이후 데이터 마이그레이션 상태를 관찰합니다.out과 권중치 0의 차이점은 첫 번째 상황에서 OSD의 권중은 바뀌지 않고 후자통의 권중은 업데이트된다는 것이다.OSD를 그룹에서 내보낸 후에도 OSD는 up 상태이고 out 상태일 수 있습니다. 설정에서 OSD를 삭제하기 전에 이 OSD 서비스를 중지하고 OSD 노드에 로그인하고 명령을 실행하여 관련 OSD 서비스를 중지해야 합니다.
ssh {osd-host}
sudo systemctl stop ceph-osd@{osd-num}
#for example
ssh ch-osd-1
systemctl stop ceph-osd@2
혹은
kill -9 {pid}
이전 릴리즈에서 다음 명령을 사용합니다.
service ceph stop osd.2
마지막으로 OSD를 클러스터의 CRUSH MAP에서 제거하고 권한을 삭제하며 OSD MAP에서 OSD를 제거하고 관리 노드에서 명령을 수행해야 합니다.
#remove osd from crush map
ceph osd crush remove {name}
#remove the osd authentication key
ceph auth del osd.{osd-num}
#remove the osd
ceph osd rm {osd-num}
#for example
ceph osd crush remove osd.2
ceph auth del osd.2
ceph osd rm 2
하면, 만약, 만약...conf 파일에 이 OSD의 설정이 있습니다. 관련 설정을 삭제해야 합니다.
더 상세한 사용 방법은 공식 문서를 보십시오
푸시 구성
우리는 더 이상 모든 서버에서ceph를 수정할 필요가 없다.ff 파일의 설정 정보는 관리 노드에서 한 부를 수정한 다음에 더 좋은 노드로 보내면 됩니다. 예를 들어ch-mon-1에서/etc/ceph/ceph를 수정했습니다.conf 내용, 동시에ch-mon-2,ch-mon-3에서 효력이 발생합니다
ceph-deploy --overwrite-conf config push ch-mon-2 ch-mon-3
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
CEPH 운영 설치 배포(luminous)osd 노드 osd 노드 osd 노드 osd 노드 - 서버당 1, 2개의 디스크를 RAID1로 합니다.나머지 디스크는 RAID0 -ch-mon-1 노드를 관리 노드로 하고ceph-deploy -Ceph 버전을 배치합...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.