Software Defined Storage

Ceph OSD 드라이브 교체

DaehanCNI 2024. 5. 6. 09:00

 Ceph 은 구조적으로 Disk 결함이 발생하여도 데이터를 유실되지 않고 성능 저하 상태에서 동작할 수 있습니다. 장애가 발생한 드라이브의 데이터를 자동으로 다은 OSD에 저장된 데이터의 추가 사본을 클러스터의 다른 OSD로 자동으로 백필(backfill) 됩니다. 이러할 경우, 결함 OSD 드라이브를 교체하고 OSD를 수동으로 교체합니다. 

 

1. Ceph 클러스터에서 OSD 제거

1.1. cephadm shell 로그인 

[root@host01 ~]# cephadm shell

 

1.2 장애 OSD 확인

[ceph: root@host01 /]# ceph osd tree | grep -i down
ID  CLASS  WEIGHT   TYPE NAME  STATUS  REWEIGHT  PRI-AFF
0   hdd    0.00999  osd.0      down    1.00000   1.00000

 

1.3 클러스터의 해당 데이터를 재조정 할수 있도록 장애 OSD 상태 변경

[ceph: root@host01 /]# ceph osd out osd.0
marked out osd.0.

 

1.4 장애 OSD 가 백필(backfill) 인지 확인

[ceph: root@host01 /]# ceph -w | grep backfill
2022-05-02 04:48:03.403872 mon.0 [INF] pgmap v10293282: 431 pgs: 1 active+undersized+degraded+remapped+backfilling, 28 active+undersized+degraded, 49 active+undersized+degraded+remapped+wait_backfill, 59 stale+active+clean, 294 active+clean; 72347 MB data, 101302 MB used, 1624 GB / 1722 GB avail; 227 kB/s rd, 1358 B/s wr, 12 op/s; 10626/35917 objects degraded (29.585%); 6757/35917 objects misplaced (18.813%); 63500 kB/s, 15 objects/s recovering
2022-05-02 04:48:04.414397 mon.0 [INF] pgmap v10293283: 431 pgs: 2 active+undersized+degraded+remapped+backfilling, 75 active+undersized+degraded+remapped+wait_backfill, 59 stale+active+clean, 295 active+clean; 72347 MB data, 101398 MB used, 1623 GB / 1722 GB avail; 969 kB/s rd, 6778 B/s wr, 32 op/s; 10626/35917 objects degraded (29.585%); 10580/35917 objects misplaced (29.457%); 125 MB/s, 31 objects/s recovering
2022-05-02 04:48:00.380063 osd.1 [INF] 0.6f starting backfill to osd.0 from (0'0,0'0] MAX to 2521'166639
2022-05-02 04:48:00.380139 osd.1 [INF] 0.48 starting backfill to osd.0 from (0'0,0'0] MAX to 2513'43079
2022-05-02 04:48:00.380260 osd.1 [INF] 0.d starting backfill to osd.0 from (0'0,0'0] MAX to 2513'136847
2022-05-02 04:48:00.380849 osd.1 [INF] 0.71 starting backfill to osd.0 from (0'0,0'0] MAX to 2331'28496
2022-05-02 04:48:00.381027 osd.1 [INF] 0.51 starting backfill to osd.0 from (0'0,0'0] MAX to 2513'87544

 

1.5 장애 OSD 중지

[ceph: root@host01 /]# ceph orch daemon stop osd.0

 

1.6 클러스터에서 OSD 제거

[ceph: root@host01 /]# ceph orch osd rm 0 --replace

 

2. 드라이브 교체 

  • 드라이브가 핫스왑 가능한 경우 장애가 발생한 드라이브를 새 드라이브로 교체한다.
  • 드라이브가 핫스왑 가능하지 않고 노드에 여러 개의 OSD가 있는 경우, 전체 노드를 종료하고 물리 드라이브를 교체해야 할 수 있습니다. 클러스터가 백필링되지 않도록 한다. 다음 문서를 통하여 리발란싱한다. https://www.ibm.com/docs/en/storage-ceph/7?topic=osds-stopping-starting-rebalancing
 

Stopping and starting rebalancing

When an OSD fails or you stop it, the CRUSH algorithm automatically starts the rebalancing process to redistribute data across the remaining OSDs. About this task Rebalancing can take time and resources, therefore, consider stopping rebalancing during trou

www.ibm.com

  • 드라이브가 /dev/ 디렉토리 아래에 표시되면 드라이브 경로를 기록해 둔다. (교체 사용)
  • OSD를 수동으로 추가하려면 OSD 드라이브를 찾아 디스크를 포맷한뒤 사용한다. 

 

3. Ceph 클러스터에 OSD 추가 

3.1 새 드라이브가 삽입된 이후, OSD를 할당

방법 #1 --unmanaged 매개변수가 설정되지 않을 경우, 자동 배치 사용

[ceph: root@host01 /]# ceph orch apply osd --all-available-devices

 

방법 #2 --unmanaged 매개 변수가 true 설정된 사용가능한 모든 디바이스에 배치 사용

[ceph: root@host01 /]# ceph orch apply osd --all-available-devices --unmanaged=true

 

 방법 #3 특정 디바이스 및 호스트에 배치

[ceph: root@host01 /]# ceph orch daemon add osd host02:/dev/sdb

 

3.2 CRUSH 계층 구조 확인

[ceph: root@host01 /]# ceph osd tree

 

 

Original.

https://www.ibm.com/docs/en/storage-ceph/7?topic=osds-replacing-osd-drive

 

Replacing an OSD drive

Ceph is designed for fault tolerance, which means that it can operate in a degraded state without losing data. Therefore, Ceph can operate even if a data storage drive fails. In the context of a failed drive, the degraded state means that the extra copies

www.ibm.com