You are currently viewing 볼륨 용량 확장하기(용량이 큰 디스크로 교체하기)

볼륨 용량 확장하기(용량이 큰 디스크로 교체하기)

볼륨의 용량을 늘리려고 합니다.

현재 볼륨의 용량이 15.7TB입니다. 용량을 10TB 정도 늘리고 싶습니다. 6TB 디스크를 4개 사용해서 레이드5를 사용하고 있는데요. 디스크 한 개는 고장 난 상태입니다. 나스는 시놀로지 DS918+입니다.

저장소 관리자의 개요 화면

볼륨의 용량을 97% 사용했습니다.

저장소 관리자의 스토리지 풀 화면

스토리지 풀의 유형은 RAID 5입니다. 스토리지 풀이 저하되었는데요. 드라이브 2가 누락되었기 때문입니다.

저장소 관리자의 HDD/SSD 화면

드라이브 2의 상태가 ‘실패’입니다. ‘실패’는 디스크가 더 이상 사용하지 못할 만큼 고장 난 상태를 뜻합니다. 불량 섹터 개수가 7만 개가 넘는데요. 로그를 확인해 보니 수개월 전부터 지속적으로 발생하고 있습니다.

드라이브 2는 스토리지 풀에 속하지 않는데요. 불량 섹터가 계속 증가하면 어느 순간 스토리지 풀에서 저절로 제거되기 때문입니다.

소요시간 : 4일    어려움 : ★★★★★

용량이 큰 디스크로 교체합니다.

레이드 5는 디스크를 모두 교체해야 용량이 증가합니다. 4TB 디스크 4개를 레이드 5로 사용하면 10.5TB 크기를 볼륨이 만들어지므로, 6TB보다 4TB 큰 10TB 디스크로 교체하면 볼륨의 용량이 지금보다 10.5TB 증가하게 됩니다.

10TB 디스크를 4개 준비하고 하나씩 교체합니다.  레이드 5는 디스크를 교체할 때 순서에 상관없이 교체가 가능한데요. 이왕이면 상태가 좋지 않은 디스크, 사용한 시간이 많은 디스크를 먼저 교체하면 좋습니다. 지금처럼 고장난 디스크가 있을 때는 당연히 고장난 디스크부터 교체해야 합니다. 드라이브 2를 가장 먼저 교체하고 나머지 디스크는 상태와 사용한 시간이 비슷하므로 드라이브 번호 순서대로 교체합니다.

수리에 소요되는 시간은 6TB와 10TB가 섞여 있는 경우에는 11시간 정도, 모두 10TB인 경우에는 16시간 정도입니다. 마지막 10TB 디스크를 교체하면 스토리지 풀의 용량과 볼륨의 용량이 늘어나게 되는데요. 스토리지 풀의 용량이 늘어나는 시점과 볼륨의 용량이 늘어나는 시점에 차이가 있습니다. 스토리지 풀의 용량이 늘어나고 7시간 뒤에 볼륨의 용량이 늘어났습니다. 시간 차이는 디스크의 용량 차이가 클수록 많이 나게 됩니다.

아주아주 중요한 점이 있는데요. 레이드 5는 디스크의 고장을 1개 허용합니다. 사용중인 디스크(6TB 디스크)를 비활성화하는 순간, 레이드 5는 디스크 1개에 고장이 발생한 것으로 간주합니다. 만약 수리에 소요되는 11시간(또는 16시간) 동안 나머지 디스크에서 고장이 또 발생하게 되면 볼륨이 읽기 전용으로 전환되거나 볼륨의 파일이 아예 보이지 않을 수도 있습니다. 이럴 때를 대비해서 디스크를 교체하기 전에 볼륨의 파일을 모두 백업하기를 권장합니다. 또한 SMART 정보나 로그를 참고해서 디스크의 상태가 디스크 교체작업을 진행해도 될 만큼 정상인 지도 판단해야 합니다. 디스크의 상태를 확인하기 어렵거나 볼륨에 문제가 발생하는 상황을 대처하기 어렵다면 디스크 교체하는 작업을 진행하지 않기를 권유합니다.

디스크 교체작업 완료 후 볼륨의 용량이 늘어남

10TB 디스크로 모두 교체하면 볼륨의 용량이 15.7TB에서 26.2TB로 증가합니다. 교체작업에 소요된 시간은 하루에 한 개씩 교체해서 총 4일이 소요되었습니다.

드라이브 2 교체완료

앞으로 세 개 더 교체해야 합니다.

드라이브 1을 교체하는 과정입니다. 드라이브 3과 드라이브 4도 똑같은 방법으로 교체합니다.

드라이브 1 교체하는 과정 (1/13)
드라이브 1 교체하는 과정 (2/13)
드라이브 1 교체하는 과정 (3/13)
드라이브 1 교체하는 과정 (4/13)
드라이브 1 교체하는 과정 (5/13)
드라이브 1 교체하는 과정 (6/13)
드라이브 1 교체하는 과정 (7/13)
드라이브 1 교체하는 과정 (8/13)
드라이브 1 교체하는 과정 (9/13)
드라이브 1 교체하는 과정 (10/13)
드라이브 1 교체하는 과정 (11/13)
드라이브 1 교체하는 과정 (12/13)
드라이브 1 교체하는 과정 (13/13)
마지막 디스크 교체

마지막 디스크를 교체할 때는 스토리지 풀의 예상 용량이 증가합니다. 레이드 5는 모든 디스크를 교체해야 용량이 증가하기 때문에 마지막 디스크를 교체할 때만 예상 용량이 증가합니다.

용량이 늘어나는 시점

0~6TB 부분 수리중

6TB 디스크와 10TB 디스크가 섞여 있는 동안에는 10TB 디스크의 6TB 부분만 수리를 진행합니다. 모든 디스크를 10TB로 교체하면 그제서야 6TB 이후 부분도 수리를 진행하게 되는데요. 스토리지 풀의 용량은 6TB 부분까지 수리가 완료되면 증가하고, 볼륨의 용량은 10TB 부분까지 수리가 완료되어야 증가합니다.

화면에 표시되는 수리 진행 상태도 지금 수리하고 있는 부분이 6TB 이전인지 이후인지에 따라서 내용이 다릅니다. 6TB 이전 부분은 수리 중…으로 이후 부분은 수리 중…확장 중으로 표시됩니다. 퍼센트 수치도 다른데요.  6TB 이전 부분은 0~100으로 이후 부분은 60~100으로 표시됩니다. 60부터 시작되는 이유는 10TB 용량 중에서 6TB까지는 이미 완료했기 때문입니다. 만약 12TB 디스크로 교체 했다면 6/12이 50이므로, 50~100으로 표시될 것입니다.

요점만 말씀드리면 수리 중…에서 100%가 되면 볼륨의 용량은 늘어나지 않고 수리 중…확장 중에서 100%가 돼야 볼륨의 용량이 늘어납니다.

6~10TB 부분 수리중

6~10TB 부분 수리가 완료되면 볼륨의 용량이 늘어납니다. 마지막 10TB 디스크를 교체한 후 16시간이 지나서 볼륨의 용량이 확장되었습니다.

궁금하면 ↓↓↓↓

HDD/SSD 로그 화면

저장소 관리자의 로그에서 디스크에 발생한 오류, 디스크 제거 및 장착한 내역을 확인할 수 있습니다.

Error 2022/08/31 17:26:01 HDN726060ALE614 K1K71XXX DS918+ 드라이브 2 드라이브가 실패했습니다. 저장소 관리자 > HDD/SSD > 상세한 상태 정보로 이동하십시오.
Error 2022/08/29 12:01:40 HDN726060ALE614 K1K71XXX DS918+ 드라이브 2 드라이브에서 I/O 오류가 발생했습니다.
Error 2022/05/10 11:29:56 HDN726060ALE614 K1K71XXX DS918+ 드라이브 2 I/O 오류.
Error 2022/05/04 00:56:47 HDN726060ALE614 K1K71XXX DS918+ 드라이브 2 S.M.A.R.T. 빠른 테스트 실패.
Warning 2022/04/08 09:48:53 HDN726060ALE614 K1K71UED DS918+ 드라이브 2 드라이브의 불량 섹터 수가 사전 정의된 제한을 초과했습니다.

root@NAS:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid5 sda3[0] sdd3[3] sdc3[2]
      17567101632 blocks super 1.2 level 5, 64k chunk, algorithm 2 [4/3] [U_UU]

md1 : active raid1 sda2[0] sdb2[1] sdc2[2] sdd2[3]
      2097088 blocks [4/4] [UUUU]

md0 : active raid1 sda1[0] sdb1[1] sdc1[2] sdd1[3]
      2490176 blocks [4/4] [UUUU]

unused devices: 
root@NAS:~# mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0
root@NAS:~# mdadm --manage /dev/md1 --fail /dev/sdb2
mdadm: set /dev/sdb2 faulty in /dev/md1
root@NAS:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid5 sda3[0] sdd3[3] sdc3[2]
      17567101632 blocks super 1.2 level 5, 64k chunk, algorithm 2 [4/3] [U_UU]

md1 : active raid1 sda2[0] sdb2[4](F) sdc2[2] sdd2[3]
      2097088 blocks [4/3] [U_UU]

md0 : active raid1 sda1[0] sdb1[4](F) sdc1[2] sdd1[3]
      2490176 blocks [4/3] [U_UU]

unused devices: 
root@NAS:~# mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm: hot removed /dev/sdb1 from /dev/md0
root@NAS:~# mdadm --manage /dev/md1 --remove /dev/sdb2
mdadm: hot removed /dev/sdb2 from /dev/md1
root@NAS:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid5 sda3[0] sdd3[3] sdc3[2]
      17567101632 blocks super 1.2 level 5, 64k chunk, algorithm 2 [4/3] [U_UU]

md1 : active raid1 sda2[0] sdc2[2] sdd2[3]
      2097088 blocks [4/3] [U_UU]

md0 : active raid1 sda1[0] sdc1[2] sdd1[3]
      2490176 blocks [4/3] [U_UU]

unused devices: 
root@NAS:~#

드라이브 2는 mdadm 명령어를 사용해서 레이드에서 제거 했습니다. 스토리지 풀에 사용하는 파티션(sdb3)은 이미 제거되었지만 DSM에 사용하는 파티션(sdb1)과 스왑공간에 사용하는 파티션(sdb2)은 레이드에 속해 있습니다. 아래처럼 짧은 옵션을 사용해도 됩니다.

mdadm /dev/md0 -f /dev/sdb1
mdadm /dev/md0 -r /dev/sdb1
mdadm /dev/md1 -f /dev/sdb2
mdadm /dev/md1 -r /dev/sdb2

수준로그시간사용자이벤트
정보시스템2022/09/08 04:03:56adminSystem successfully repaired [Storage Pool 1] with drive [Drive 4].
정보시스템2022/09/07 11:56:31adminSystem started to repair [Storage Pool 1] with [Drive 4].
정보시스템2022/09/07 11:54:19adminDrive (SN:K1K7ZXXX) has been deactivated.
오류시스템2022/09/07 11:54:17SYSTEMStorage Pool [1] degrade [3/4], please repair it.
정보시스템2022/09/07 00:53:19adminSystem successfully repaired [Storage Pool 1] with drive [Drive 3].
정보시스템2022/09/06 14:19:32adminSystem started to repair [Storage Pool 1] with [Drive 3].
오류시스템2022/09/06 14:15:35SYSTEMStorage Pool [1] degrade [3/4], please repair it.
정보시스템2022/09/06 14:15:34adminDrive (SN:K1K7MXXX) has been deactivated.
정보시스템2022/09/05 22:36:59adminSystem successfully repaired [Storage Pool 1] with drive [Drive 1].
정보시스템2022/09/05 11:13:05adminSystem started to repair [Storage Pool 1] with [Drive 1].
오류시스템2022/09/05 11:10:11SYSTEMStorage Pool [1] degrade [3/4], please repair it.
정보시스템2022/09/05 11:10:11adminDrive (SN:K1K7LXXX) has been deactivated.
정보시스템2022/09/03 01:56:58adminSystem successfully repaired [Storage Pool 1] with drive [Drive 2].
정보시스템2022/09/02 15:11:35adminSystem started to repair [Storage Pool 1] with [Drive 2].
오류시스템2022/08/30 09:33:03SYSTEMStorage Pool [1] was degrade [3/4], please repair it.
오류시스템2022/08/29 12:01:40SYSTEMRead error at internal disk [2] sector 4152924288.
오류시스템2022/08/29 12:01:40SYSTEMWrite error at internal disk [2] sector 9439240.

디스크를 교체하는 과정은 로그 센터에 기록됩니다. 디스크 한 개당 4개의 로그가 생성됩니다.

  1. Drive (SN:K1K7LXXX) has been deactivated.
    드라이브 비활성화를 실행한 기록입니다.

  2. Storage Pool [1] degrade [3/4], please repair it.
    스토리지 풀이 저하된 기록입니다.

  3. System started to repair [Storage Pool 1] with [Drive 1].
    수리를 시작한 기록입니다.

  4. System successfully repaired [Storage Pool 1] with drive [Drive 1].
    수리가 완료된 기록입니다.
root@NAS:/var/log# mdadm -D /dev/md2
/dev/md2:
        Version : 1.2
  Creation Time : Mon Jul  1 10:54:59 2019
     Raid Level : raid5
     Array Size : 17567101632 (16753.29 GiB 17988.71 GB)
  Used Dev Size : 5855700544 (5584.43 GiB 5996.24 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Wed Sep  7 16:51:54 2022
          State : clean, degraded, recovering
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 64K

 Rebuild Status : 53% complete

           Name : NAS:2  (local to host NAS)
           UUID : ec065589:fdc8c4a1:ecf7081f:7304c5cf
         Events : 58173

    Number   Major   Minor   RaidDevice State
       5       8        3        0      active sync   /dev/sda3
       4       8       19        1      active sync   /dev/sdb3
       6       8       35        2      active sync   /dev/sdc3
       7       8       51        3      spare rebuilding   /dev/sdd3
root@NAS:/var/log# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4] [raidF1]
md2 : active raid5 sdd3[7] sdc3[6] sda3[5] sdb3[4]
      17567101632 blocks super 1.2 level 5, 64k chunk, algorithm 2 [4/3] [UUU_]
      [===================>.]  recovery = 99.9% (5855644916/5855700544) finish=0.0min speed=171554K/sec

md1 : active raid1 sdd2[3] sdc2[2] sda2[0] sdb2[1]
      2097088 blocks [4/4] [UUUU]

md0 : active raid1 sdd1[3] sdc1[2] sda1[0] sdb1[1]
      2490176 blocks [4/4] [UUUU]

unused devices: 
root@NAS:/var/log# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4] [raidF1]
md2 : active raid5 sdd3[7] sdc3[6] sda3[5] sdb3[4]
      29284844544 blocks super 1.2 level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
      [============>........]  resync = 60.1% (5867121640/9761614848) finish=323.6min speed=200526K/sec

md1 : active raid1 sdd2[3] sdc2[2] sda2[0] sdb2[1]
      2097088 blocks [4/4] [UUUU]

md0 : active raid1 sdd1[3] sdc1[2] sda1[0] sdb1[1]
      2490176 blocks [4/4] [UUUU]

unused devices: 
root@NAS:/var/log# mdadm -D /dev/md2
/dev/md2:
        Version : 1.2
  Creation Time : Mon Jul  1 10:54:59 2019
     Raid Level : raid5
     Array Size : 29284844544 (27928.20 GiB 29987.68 GB)
  Used Dev Size : 9761614848 (9309.40 GiB 9995.89 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Wed Sep  7 21:10:17 2022
          State : active, resyncing
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 64K

  Resync Status : 60% complete

           Name : NAS:2  (local to host NAS)
           UUID : ec065589:fdc8c4a1:ecf7081f:7304c5cf
         Events : 59446

    Number   Major   Minor   RaidDevice State
       5       8        3        0      active sync   /dev/sda3
       4       8       19        1      active sync   /dev/sdb3
       6       8       35        2      active sync   /dev/sdc3
       7       8       51        3      active sync   /dev/sdd3
root@NAS:/var/log#

6TB 부분까지 수리를 마치면 “mdadm –grow” 명령어가 실행되고 그 결과 10TB 디스크의 6TB 이후 부분이 스토리지 풀에 추가되어 스토리지 풀의 용량이 늘어나게 됩니다. 또한 용량 확장에 사용한 부분(6~10TB 부분)이 동기화되었는지 확인하기 위해서 곧바로 resync가 진행됩니다.

Normally when an array is built the “size” is taken from the smallest of the drives. If all the small drives in an arrays are, one at a time, removed and replaced with larger drives, then you could have an array of large drives with only a small amount used. In this situation, changing the “size” with “GROW” mode will allow the extra space to start being used. If the size is increased in this way, a “resync” process will start to make sure the new parts of the array are synchronised.

답글 남기기