ceph_journal_disk_교체

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
로그인하면 댓글을 남길 수 있습니다.
  • ceph_journal_disk_교체.txt
  • 마지막으로 수정됨: 2021/02/17 03:13
  • 저자 koov