Ceph Journal disk 교체
버전 : Redhat Ceph 3 (Luminous 12.x)
출처 : https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/3/html/operations_guide/managing-the-storage-cluster-size#replacing-a-journal-using-the-command-line-interface-ops
Ceph 스토리지의 OSD 와 Journal이 같은 디스크에 존재하는경우 (osd_scenario: collocated
로 설치된경우) 저널을 교체하기 위해서는 OSD도 동시에 같이 교체되어야 합니다.
그러나 저널이 별도의 디스크에 구성된 경우(osd_scenario: non-collocated
로 설치된경우)는 OSD 변경 없이 저널디스크만 교체가 가능합니다.
작업절차
클러스터를 noout
설정 합니다.
[root@osd1 ~]# ceph osd set noout
저널을 변경할 OSD를 중지합니다.
[root@osd1 ~]# systemctl stop ceph-osd@$OSD_ID
현재 저널데이터를 OSD에 반영합니다.
[root@osd1 ~]# ceph-osd -i $OSD_ID --flush-journal
문제가 있는 예전 저널 파티션을 제거 합니다.
형식은 sgdisk --delete=$OLD_PART_NUM -- $OLD_DEV_PATH
입니다.
$OLD_PART_NUM
대상 저널 파티션 번호$OLD_DEV_PATH
대상 저널 장치 경로
삭제할 저널이 /dev/sda1
인 경우
[root@osd1 ~]# sgdisk --delete=1 -- /dev/sda
새로운 저널 파티션을 생성합니다. sgdisk
명령어는 자동으로 새로운 파티션을 생성해줍니다.
명령어 형식은 sgdisk --new=0:0:$JOURNAL_SIZE -- $NEW_DEV_PATH
입니다.
$JOURNAL_SIZE
생성할 저널 파티션의 크기 (기본값 5GB. 보통 10GB이상이 필요하지 않음)NEW_DEV_PATH
새로운 저널파티션을 생성할 장치 경로
10GB
짜리 새로운 저널 파티션 생성 예제
[root@osd1 ~]# sgdisk --new=0:0:10240M -- /dev/sda
새로 생성한 파티션에 대해 파라메터 설정
$OLD_PART_UUID
해당 OSD의journal_uuid
에 기록된UUID
값. 예를들어 OSD 0번의 UUID는/var/lib/ceph/osd/ceph-0/journal_uuid
NEW_DEV_PATH
새로 할당할 저널장치 경로
[root@osd1 ~]# sgdisk --change-name=0:"ceph journal" --partition-guid=0:a1279726-a32d-4101-880d-e8573bb11c16 --typecode=0:097c058d-0758-4199-a787-ce9bacb13f48 --mbrtogpt -- /dev/sda
이 명령은 앞서 sgdisk
로 저널파티션을 생성하는 옵션과 같이 한번에 실행하면 안됩니다. 동시에 수행하면 파티션이 제대로 만들어지지 않습니다.
새로운 저널 생성
[root@osd1 ~]# ceph-osd -i $OSD_ID --mkjournal
OSD 데몬 시작
[root@osd1 ~]# systemctl start ceph-osd@$OSD_ID
OSD의 noout
플래그 제거
[root@osd1 ~]# ceph osd unset noout
저널이 제대로 할당되었는지 확인
[root@osd1 ~]# ceph-disk list