2015년 10월 28일 수요일

Mac OS X El Capitan의 Disk Utility에서 RAID 지원불가 문제에 대하여

2015.10.29.

문제의 인식

Yosemite에서 만든 RAID 0가 El Capitan에서 잘 작동하지 않는 듯해서, Disk Utility로 보니 제대로 보이지도 않고 terminal에서 diskutil 명령으로도 RAID 디스크 조작도 잘 안되서 새로 RAID를 만들기 위해 개별 디스크를 모두 포맷하고 Disk Utility를 실행해 보니 RAID 관련 명령 부분이 빠졌음. 이에 대해 최근 외국 사이트를 중심으로 불평들이 쏟아지고 있음.

OS X El Capitan: Disk Utility “designed by morons” design ethic + RAID Support Removed + Wanton Bugs 기사 제목만 보더라도 El Capitan의 Disk Utility에 대해 상당히 비판하고 있음.

지금 초기화된 4개의 디스크에 대해 diskutil 명령을 사용하여 RAID가 가능한 지 최대한 만들어 보기로 함.

diskutil appleRAID  명령인데, diskutil ar 이라고 해도됨

명령어에 대한 매뉴얼은 Mac developer library를 참고하고, 기본적인 사용법은 요기를 참고

RAID에 참여할 개별 디스크는 아래와 같이 GUID로 포맷이 되어있어야함

$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Macintosh HD            999.7 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           +999.4 GB   disk1
                                 Logical Volume on disk0s2
                                 53A326AC-8EAC-47A1-9087-A403D6A1EFED
                                 Unencrypted
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *4.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS SD2                     4.0 TB     disk2s2
/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk3
   1:                        EFI EFI                     209.7 MB   disk3s1
   2:                  Apple_HFS D1                      3.0 TB     disk3s2
/dev/disk4 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk4
   1:                        EFI EFI                     209.7 MB   disk4s1
   2:                  Apple_HFS D2                      3.0 TB     disk4s2
/dev/disk5 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk5
   1:                        EFI EFI                     209.7 MB   disk5s1
   2:                  Apple_HFS D3                      3.0 TB     disk5s2
/dev/disk6 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk6
   1:                        EFI EFI                     209.7 MB   disk6s1

   2:                  Apple_HFS D4                      3.0 TB     disk6s2


명령어에 의한 RAID 생성


여기에서 disk3과 disk4를 M 이라는 mirror로 만들어보기로 함. 아래 명령어를 치면...

$ diskutil ar create mirror M JHFS+ disk3 disk4
Started RAID operation
Unmounting proposed new member disk3
Unmounting proposed new member disk4
Repartitioning disk3 so it can be in a RAID set
Unmounting disk
Creating the partition map
Using disk3s2 as a data slice
Repartitioning disk4 so it can be in a RAID set
Unmounting disk
Creating the partition map
Using disk4s2 as a data slice
Creating a RAID set
Bringing the RAID partitions online
Waiting for the new RAID to spin up "1F23A08A-247A-4F7B-8BFD-37DF39892FCD"
Initialized /dev/rdisk7 as a 3 TB case-insensitive HFS Plus volume with a 229376k journal
Mounting disk

Finished RAID operation

이 되고. M이라는 mirror 디스크가 만들어졌음


$ diskutil ar list
AppleRAID sets (1 found)
===============================================================================
Name:                 M
Unique ID:            1F23A08A-247A-4F7B-8BFD-37DF39892FCD
Type:                 Mirror
Status:               Online
Size:                 3.0 TB (3000248991744 Bytes)
Rebuild:              manual
Device Node:          disk7
-------------------------------------------------------------------------------
#  DevNode   UUID                                  Status     Size
-------------------------------------------------------------------------------
0  disk3s2   28D166B6-1C5F-44C4-9E87-9BCE7F460C46  Online     3000248991744
1  disk4s2   AF060EC5-2C90-4972-938F-298F08F74863  Online     3000248991744
===============================================================================


Disk Utility에서 보면 다음과 같이 보임

terminal 명령어로 억지로 RAID 만든 후 디스크유틸리티화면


중간결론으로는 diskutil 명령어로 만들수는 있고 사용은 가능함.


RAID disk 관리


이번에는 disk를 RAID에 넣었다 뺐다하면서 디스크관리를 해보기로함
M에 disk4를 빼고 disk6으로 교체하는 작업을 해봄.

$ diskutil ar remove AF060EC5-2C90-4972-938F-298F08F74863 1F23A08A-247A-4F7B-8BFD-37DF39892FCD
Started RAID operation on disk7 M
Removing disk from RAID
Changing the disk type
Finished RAID operation on disk7 M

$ diskutil ar list
AppleRAID sets (1 found)
===============================================================================
Name:                 M
Unique ID:            1F23A08A-247A-4F7B-8BFD-37DF39892FCD
Type:                 Mirror
Status:               Online
Size:                 3.0 TB (3000248991744 Bytes)
Rebuild:              manual
Device Node:          disk7
-------------------------------------------------------------------------------
#  DevNode   UUID                                  Status     Size
-------------------------------------------------------------------------------
0  disk3s2   28D166B6-1C5F-44C4-9E87-9BCE7F460C46  Online     3000248991744
===============================================================================



M에서 disk4가 빠졌고, disk3만으로 mirror RAID가 존재하고 있음.
이번에는 disk6를 추가해 보기로함.

$ diskutil ar add member disk6 1F23A08A-247A-4F7B-8BFD-37DF39892FCD
Started RAID operation on disk7 M
Unmounting disk
Repartitioning disk6 so it can be in a RAID set
Unmounting disk
Creating the partition map
Adding disk6s2 to the RAID Set
Finished RAID operation on disk7 M

$ diskutil ar list
AppleRAID sets (1 found)
===============================================================================
Name:                 M
Unique ID:            1F23A08A-247A-4F7B-8BFD-37DF39892FCD
Type:                 Mirror
Status:               Degraded
Size:                 3.0 TB (3000248991744 Bytes)
Rebuild:              manual
Device Node:          disk7
-------------------------------------------------------------------------------
#  DevNode   UUID                                  Status     Size
-------------------------------------------------------------------------------
0  disk3s2   28D166B6-1C5F-44C4-9E87-9BCE7F460C46  Online     3000248991744
1  disk6s2   2C12F93B-D3A4-4AFD-AC65-CAD931ED403A  0% (Rebuilding)3000248991744

==============================================================================

M에 disk3와 disk6로 구성된 Mirror RAID가 만들어 졌음. Rebuilding하는데에 금방 되지 않으므로 (3TB hdd를 모두 복사?) 제대로 사용하기에는 약간의 시간이 걸릴듯.


Stripe RAID 만들기

이번에는 S라는 stripe set RAID를 disk3, disk4로 만들기로함.

먼저, M을 삭제

$ diskutil ar delete 1F23A08A-247A-4F7B-8BFD-37DF39892FCD
Started RAID operation on disk7 M
Unmounting volume for RAID set 1F23A08A-247A-4F7B-8BFD-37DF39892FCD
Destroying the RAID set 1F23A08A-247A-4F7B-8BFD-37DF39892FCD
Finished RAID operation on disk7 M

$ diskutil ar list

No AppleRAID sets found


S라는 stripe set RAID 생성(disk3, disk4로부터)


$ diskutil ar create stripe S JHFS+ disk3 disk4
Started RAID operation
Unmounting proposed new member disk3
Unmounting proposed new member disk4
Repartitioning disk3 so it can be in a RAID set
Unmounting disk
Creating the partition map
Using disk3s2 as a data slice
Repartitioning disk4 so it can be in a RAID set
Unmounting disk
Creating the partition map
Using disk4s2 as a data slice
Creating a RAID set
Bringing the RAID partitions online
Waiting for the new RAID to spin up "8992F163-9B1F-4FE5-AAF7-9E0777801E2C"
Initialized /dev/rdisk7 as a 5 TB case-insensitive HFS Plus volume with a 458752k journal
Mounting disk
Finished RAID operation

$ diskutil ar list
AppleRAID sets (1 found)
===============================================================================
Name:                 S
Unique ID:            8992F163-9B1F-4FE5-AAF7-9E0777801E2C
Type:                 Stripe
Status:               Online
Size:                 6.0 TB (6000497983488 Bytes)
Rebuild:              manual
Device Node:          disk7
-------------------------------------------------------------------------------
#  DevNode   UUID                                  Status     Size
-------------------------------------------------------------------------------
0  disk3s2   58D7828B-D3A9-4DD5-8AE8-A0983450AE37  Online     3000248991744
1  disk4s2   468B1125-1D7E-4C70-890E-367F90F14B56  Online     3000248991744
===============================================================================


RAID Volume 재포맷

이번에는 RAID를 재포맷(Mac에서는 erase)하려면 disk volume에 대해서만 가능함. 즉, /dev/disk 등 디스크 자체에 대해서는 불가함.

명령은 12TB의 TMS라는 RAID volume(/dev/disk6 임)을 포맷하고 다시 TMS라고 라벨을 붙이는 것에 대한 것임

$ diskutil eraseVolume JHFS+ TMS /Volumes/TMS
Started erase on disk6 TMS
Unmounting disk
Erasing
Initialized /dev/rdisk6 as a 11 TB case-insensitive HFS Plus volume with a 524288k journal
Mounting disk

Finished erase on disk6 TMS




결론

terminal 명령으로 RAID를 만들 수는 있고 사용도 가능하나 Disk Utility에서는 이상하게 보이므로 명령어로만 관리해야함