8.3. Ceph OSD 노드 및 운영 체제 수동 업그레이드
시스템 관리자는 Red Hat Ceph Storage 클러스터 노드와 Red Hat Enterprise Linux 운영 체제를 새로운 주요 릴리스로 수동으로 업그레이드할 수 있습니다.
이 절차는 Ceph 클러스터의 각 OSD 노드에 대해 수행해야 하지만 일반적으로 한 번에 하나의 OSD 노드만 수행해야 합니다. OSD 노드의 최대 하나의 실패 도메인은 병렬로 수행할 수 있습니다. 예를 들어 요청별 복제가 사용 중인 경우 하나의 전체 랙의 OSD 노드를 병렬로 업그레이드할 수 있습니다. 데이터 액세스 문제를 방지하려면 현재 OSD 노드의 OSD가 정상 작동으로 반환되고 다음 OSD를 진행하기 전에 모든 클러스터의 PG가 active+clean 상태에 있는지 확인합니다.
Leapp upgrade 유틸리티는 OSD 암호화로 업그레이드를 지원하지 않기 때문에 암호화된 OSD 파티션에서는 이 절차가 작동하지 않습니다.
OSD가 ceph-disk 를 사용하여 생성되었으며 여전히 ceph-disk 로 관리되는 경우 ceph-volume 을 사용하여 관리해야 합니다. 이 내용은 아래 선택적 단계에서 다룹니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드는 Red Hat Enterprise Linux 7.9를 실행하고 있습니다.
- 노드는 Red Hat Ceph Storage 버전 3.3z6 또는 4.0을 사용합니다.
- Red Hat Enterprise Linux 8.3의 설치 소스에 액세스합니다.
절차
마이그레이션 중에 OSD
noout플래그가 표시되지 않도록 설정합니다.ceph osd set noout클러스터에서 불필요한 로드를 방지하고 노드가 마이그레이션의 경우 데이터 재시프를 방지하려면 OSD
nobackfill,norecover,noscrub,nodeep-scrub플래그를 설정하여 OSD nobackfill , norebalance, noscrub 플래그를 설정합니다.ceph osd set nobackfill ceph osd set norecover ceph osd set norebalance ceph osd set noscrub ceph osd set nodeep-scrub노드의 모든 OSD 프로세스를 정상적으로 종료합니다.
[root@mon ~]# systemctl stop ceph-osd.targetRed Hat Ceph Storage 3을 사용하는 경우 Red Hat Ceph Storage 3 리포지토리를 비활성화합니다.
tools 리포지토리를 비활성화합니다.
[root@mon ~]# subscription-manager repos --disable=rhel-7-server-rhceph-3-tools-rpmsosd 저장소를 비활성화합니다.
[root@mon ~]# subscription-manager repos --disable=rhel-7-server-rhceph-3-osd-rpms
Red Hat Ceph Storage 4를 사용하는 경우 Red Hat Ceph Storage 4 리포지토리를 비활성화합니다.
tools 리포지토리를 비활성화합니다.
[root@mon ~]# subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpmsosd 저장소를 비활성화합니다.
[root@mon ~]# subscription-manager repos --disable=rhel-7-server-rhceph-4-osd-rpms
-
st
app유틸리티를 설치합니다. Red Hat Enterprise Linux 7에서 Red Hat Enterprise Linux 8로 업그레이드를 참조하십시오. - stapp preupgrade 검사를 통해 실행합니다. 명령줄의 Assessing upgradability를 참조하십시오.
-
/etc/ssh/sshd_config에서PermitRootLogin yes를 설정합니다. OpenSSH SSH 데몬을 다시 시작합니다.
[root@mon ~]# systemctl restart sshd.serviceLinux 커널에서 iSCSI 모듈을 제거합니다.
[root@mon ~]# modprobe -r iscsi- RHEL 7에서 RHEL 8로의 업그레이드 수행에 따라 업그레이드를 수행합니다.
- 노드를 재부팅합니다.
Red Hat Enterprise Linux 8용 Red Hat Ceph Storage 4용 리포지토리를 활성화합니다.
툴 리포지토리를 활성화합니다.
[root@mon ~]# subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpmsosd 리포지터리를 활성화합니다.
[root@mon ~]# subscription-manager repos --enable=rhceph-4-osd-for-rhel-8-x86_64-rpms
ceph-osd패키지를 설치합니다.[root@mon ~]# dnf install ceph-osdleveldb패키지를 설치합니다.[root@mon ~]# dnf install leveldb-
아직 업그레이드되지 않은 노드 또는 이미 해당 파일이 복원된 노드에서
ceph.conf파일을 복원합니다. noout,nobackfill,norecover,norrebalance,noscrub및nodeep-scrub플래그를 설정 해제합니다.# ceph osd unset noout # ceph osd unset nobackfill # ceph osd unset norecover # ceph osd unset norebalance # ceph osd unset noscrub # ceph osd unset nodeep-scrub기존 NetNamespace 버킷을 최신 버킷 유형
straw2로 전환합니다.# ceph osd getcrushmap -o backup-crushmap # ceph osd crush set-all-straw-buckets-to-straw2선택 사항: OSD가
ceph-disk를 사용하여 생성되었으며 여전히ceph-disk로 관리되는 경우ceph-volume을 사용하여 관리해야 합니다.각 오브젝트 스토리지 장치를 마운트합니다.
구문
/dev/DRIVE /var/lib/ceph/osd/ceph-OSD_IDDRIVE 를 스토리지 장치 이름 및 파티션 번호로 바꿉니다.
OSD_ID 를 OSD ID로 교체합니다.
예제
[root@mon ~]# mount /dev/sdb1 /var/lib/ceph/osd/ceph-0ID_NUMBER 가 올바른지 확인합니다.
구문
cat /var/lib/ceph/osd/ceph-OSD_ID/whoamiOSD_ID 를 OSD ID로 교체합니다.
예제
[root@mon ~]# cat /var/lib/ceph/osd/ceph-0/whoami 0추가 오브젝트 저장소 장치에 대해 위의 단계를 반복합니다.
새로 마운트된 장치를 스캔합니다.
구문
ceph-volume simple scan /var/lib/ceph/osd/ceph-OSD_IDOSD_ID 를 OSD ID로 교체합니다.
예제
[root@mon ~]# ceph-volume simple scan /var/lib/ceph/osd/ceph-0 stderr: lsblk: /var/lib/ceph/osd/ceph-0: not a block device stderr: lsblk: /var/lib/ceph/osd/ceph-0: not a block device stderr: Unknown device, --name=, --path=, or absolute path in /dev/ or /sys expected. Running command: /usr/sbin/cryptsetup status /dev/sdb1 --> OSD 0 got scanned and metadata persisted to file: /etc/ceph/osd/0-0c9917f7-fce8-42aa-bdec-8c2cf2d536ba.json --> To take over management of this scanned OSD, and disable ceph-disk and udev, run: --> ceph-volume simple activate 0 0c9917f7-fce8-42aa-bdec-8c2cf2d536ba추가 오브젝트 저장소 장치에 대해 위의 단계를 반복합니다.
장치를 활성화합니다.
구문
ceph-volume simple activate OSD_ID UUIDOSD_ID 를 OSD ID 및 UUID 로 바꾸고 이전 스캔 출력에 표시된 UUID로 바꿉니다.
예제
[root@mon ~]# ceph-volume simple activate 0 0c9917f7-fce8-42aa-bdec-8c2cf2d536ba Running command: /usr/bin/ln -snf /dev/sdb2 /var/lib/ceph/osd/ceph-0/journal Running command: /usr/bin/chown -R ceph:ceph /dev/sdb2 Running command: /usr/bin/systemctl enable ceph-volume@simple-0-0c9917f7-fce8-42aa-bdec-8c2cf2d536ba stderr: Created symlink /etc/systemd/system/multi-user.target.wants/ceph-volume@simple-0-0c9917f7-fce8-42aa-bdec-8c2cf2d536ba.service/usr/lib/systemd/system/ceph-volume@.service. Running command: /usr/bin/ln -sf /dev/null /etc/systemd/system/ceph-disk@.service --> All ceph-disk systemd units have been disabled to prevent OSDs getting triggered by UDEV events Running command: /usr/bin/systemctl enable --runtime ceph-osd@0 stderr: Created symlink /run/systemd/system/ceph-osd.target.wants/ceph-osd@0.service /usr/lib/systemd/system/ceph-osd@.service. Running command: /usr/bin/systemctl start ceph-osd@0 --> Successfully activated OSD 0 with FSID 0c9917f7-fce8-42aa-bdec-8c2cf2d536ba 추가 오브젝트 저장소 장치에 대해 위의 단계를 반복합니다.
선택 사항: OSD가
ceph-volume으로 생성되었으며 이전 단계를 완료하지 않은 경우 OSD 서비스를 지금 시작합니다.[root@mon ~]# systemctl start ceph-osd.targetOSD를 활성화합니다.
BlueStore
[root@mon ~]# ceph-volume lvm activate --allOSD가
up및 인지,active+clean상태인지 확인합니다.[root@mon ~]# ceph -sosd: 아래의 행에서 :, 모든 OSD가 실행
중인지확인합니다.예제
osd: 3 osds: 3 up (since 8s), 3 in (since 3M)- 모두 업그레이드될 때까지 모든 OSD 노드에서 위의 단계를 반복합니다.
Red Hat Ceph Storage 3에서 업그레이드하는 경우 사전Nautilus OSD를 허용하지 않고 broken-only 기능을 활성화합니다.
[root@mon ~]# ceph osd require-osd-release nautilus참고이 단계를 실행하지 않으면
msgrv2가 활성화된 후 OSD가 통신할 수 없습니다.Red Hat Ceph Storage 3에서 Red Hat Ceph Storage 4로 업그레이드한 후 모든 데몬이 업데이트되면 다음 단계를 실행하십시오.
messenger v2 프로토콜,
msgr2를 활성화합니다.[root@mon ~]# ceph mon enable-msgr2그러면 이전 기본 포트 6789에 바인딩하는 모든 Ceph 모니터가 3300의 새 포트에 바인딩됩니다.
모든 노드에서
ceph.conf파일의 구성 옵션을 스토리지 클러스터의 구성 데이터베이스로 가져옵니다.예제
[root@mon ~]# ceph config assimilate-conf -i /etc/ceph/ceph.conf참고예를 들어 동일한 옵션 세트에 대해 다른 구성 값이 있는 경우 최종 결과는 파일이 동화되는 순서에 따라 달라집니다.
스토리지 클러스터의 구성 데이터베이스를 확인합니다.
예제
[root@mon ~]# ceph config dump