2015년 11월 15일 일요일

Mac OS (El Captitan)에서 RAID5 만들기

2015.11.12.(목)


o 준비물
  - Thunderbolt disk array (여기서는 AKiTio Thunder2 Quad)
  - 사용 OS는 El Capitan

o 설치방법1 - OpenZFS와 AKiTio에서 제공하는 RAID 설정툴
  - AKiTio의 웹페이지를 살펴보니 RAID5를 만드는 방법이 있었음
  - OpenZFS를 먼저 설치하고, AKiTio의 RAID-Z Manager를 설치
  - MacZFS도 있으나 Mac OS 10.7까지만 되고 그 이후는 OpenZFS를 사용하라고 되어 있음
  - RAID-Z Manager를 실행해서 4개의 디스크를 RAID0(stripe), RAID5(RAID-Z), RAID6(RAID-Z2)을 선택해서 설치하면 됨

  - 그러나 finder에서는 잘 보이고 실제 사용도 가능하나 diskutil  list 로는 안 보임

$ 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                        *3.0 TB     disk2
   1:                        ZFS                         3.0 TB     disk2s1
   2: 6A945A3B-1DD2-11B2-99A6-080020736631               8.4 MB     disk2s9
/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk3
   1:                        ZFS                         3.0 TB     disk3s1
   2: 6A945A3B-1DD2-11B2-99A6-080020736631               8.4 MB     disk3s9
/dev/disk4 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk4
   1:                        ZFS                         3.0 TB     disk4s1
   2: 6A945A3B-1DD2-11B2-99A6-080020736631               8.4 MB     disk4s9
/dev/disk5 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk5
   1:                        ZFS                         3.0 TB     disk5s1
   2: 6A945A3B-1DD2-11B2-99A6-080020736631               8.4 MB     disk5s9
/dev/disk6 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *4.0 TB     disk6
   1:                        EFI EFI                     209.7 MB   disk6s1

   2:                  Apple_HFS SD2                     4.0 TB     disk6s2


  - 결국, 물리적 하드로 보이지 않으므로 time machine의 백업 데이터 저장용 디스크로는 잡히지 않아서 time machine에는 사용할 수 없었음.

  - 그러나, OpenZFS의 FAQ를 보면

Q) Can Time Machine backups be stored on ZFS?[edit]
A) Yes. It is possible to host a TimeMachine backup within a SparseImage on ZFS, or an HFS formatted ZVOL On ZFS.

이라고 되어 있는 데, SparseImage는 어떻게 하는 지 잘 모르겠음.

ZVOL은 다음과 같이 수행. 이제부터는 RAID-Z Manager를 사용하지 않고 모든 것을 명령어로 하기로함

  일단, disk3, disk4, disk5를 RAIDZ로 묶고 pool 이름을 tests라고 함. 방법은 요기 참조..

$ sudo zpool create -f -o ashift=12 -O casesensitivity=insensitive -O normalization=formD tests raidz /dev/disk3 /dev/disk4 /dev/disk5
Password:

$ 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                        *6.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS T                       6.0 TB     disk2s2
/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk3
   1:                        ZFS                         3.0 TB     disk3s1
   2: 6A945A3B-1DD2-11B2-99A6-080020736631               8.4 MB     disk3s9
/dev/disk4 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk4
   1:                        ZFS                         3.0 TB     disk4s1
   2: 6A945A3B-1DD2-11B2-99A6-080020736631               8.4 MB     disk4s9
/dev/disk5 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk5
   1:                        ZFS                         3.0 TB     disk5s1
   2: 6A945A3B-1DD2-11B2-99A6-080020736631               8.4 MB     disk5s9
/dev/disk6 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk6
   1:                        EFI EFI                     209.7 MB   disk6s1
   2: B6FA30DA-92D2-4A9A-96F1-871EC6486200               2.3 MB     disk6s2
   3: 2E313465-19B9-463F-8126-8A7993773801               7.3 MB     disk6s3
   4: FA709C7E-65B1-4593-BFD5-E71D61DE9B02               3.0 TB     disk6s4
   5:                 Apple_Boot Boot OSX                134.2 MB   disk6s5
/dev/disk7 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *4.0 TB     disk7
   1:                        EFI EFI                     209.7 MB   disk7s1
   2:                  Apple_HFS SD2                     4.0 TB     disk7s2

$ zpool status
  pool: tests
 state: ONLINE
  scan: none requested
config:

NAME        STATE     READ WRITE CKSUM
tests       ONLINE       0     0     0
  raidz1-0  ONLINE       0     0     0
    disk3   ONLINE       0     0     0
    disk4   ONLINE       0     0     0

    disk5   ONLINE       0     0     0



  - 그러면, finder로 보면 5.7TB 정도의 tests 라는 외부 디스크가 보임. 물론 time machine에서 백업 디스크로 보이지 않음
  - 이번에는 ZVOL을 만들게 되는 데.. 이것은 이미 만들어진 pool에서 일부를 사용하여  external virtual disk를 만들게 되는 것(200G의 volume을 만들고 이름을 fish라고 하였음)이고 이 volume을 JHFS+로 포맵하면 됨. 방법은 요기 참조..


$ sudo zfs create -V 200G tests/fish

$ 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                        *6.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS T                       6.0 TB     disk2s2
/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk3
   1:                        ZFS                         3.0 TB     disk3s1
   2: 6A945A3B-1DD2-11B2-99A6-080020736631               8.4 MB     disk3s9
/dev/disk4 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk4
   1:                        ZFS                         3.0 TB     disk4s1
   2: 6A945A3B-1DD2-11B2-99A6-080020736631               8.4 MB     disk4s9
/dev/disk5 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk5
   1:                        ZFS                         3.0 TB     disk5s1
   2: 6A945A3B-1DD2-11B2-99A6-080020736631               8.4 MB     disk5s9
/dev/disk6 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk6
   1:                        EFI EFI                     209.7 MB   disk6s1
   2: B6FA30DA-92D2-4A9A-96F1-871EC6486200               2.3 MB     disk6s2
   3: 2E313465-19B9-463F-8126-8A7993773801               7.3 MB     disk6s3
   4: FA709C7E-65B1-4593-BFD5-E71D61DE9B02               3.0 TB     disk6s4
   5:                 Apple_Boot Boot OSX                134.2 MB   disk6s5
/dev/disk7 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *4.0 TB     disk7
   1:                        EFI EFI                     209.7 MB   disk7s1
   2:                  Apple_HFS SD2                     4.0 TB     disk7s2
/dev/disk8 (external, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                                                   +214.7 GB   disk8

$ diskutil eraseDisk JHFS+ tf disk8
Started erase on disk8
Unmounting disk
Creating the partition map
Waiting for the disks to reappear
Formatting disk8s2 as Mac OS Extended (Journaled) with name tf
Initialized /dev/rdisk8s2 as a 200 GB case-insensitive HFS Plus volume with a 16384k journal
Mounting disk

Finished erase on disk8

  - 위는 tests라는 ZFS pool 내에 fish라는 200GB짜리  ZVOL을 만들면 /dev/disk8이라는 새로운 디바이스가 생기고 속성은 external, virtual임. 그리고, 다시 이것을 JHFS+로 포맷(이름은 tf) 해서 Mac에 마운트(자동이지만) 시킨 명령들임

  - 그럼에도 불구하고 time machine에서는 tf를 알아보지 못하고 있음

  - 따라서, 잘 안되는 것으로 판단. 이런 상황이라면 위급시 (cmd-R 로 복구시에 안 보인다는 뜻..)에 사용 불가일 것 같음.

  - 설치방법1 결론 : 명확히 안되는 것은 아니지만 위급 시에 사용불가일 확율이 높으므로 열외



o 설치방법2 - 상용 SW인 SoftRAID 사용
  - evaluation용으로 1개월 사용이 가능한 SoftRAID 5(El Capitan에서 사용하려면 버전5가 필요함)를 설치하여 RAID5를 구성함
  - disk2, disk3, disk4, disk5를 RAID5로 묶고 볼륨명은 SoftTM5로 하였음
  - 디스크 리스트를 보면 다음과 같고, disk6이 SoftTM5 인 것을 확인할 수 있음

$ 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                        *3.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2: B6FA30DA-92D2-4A9A-96F1-871EC6486200               2.3 MB     disk2s2
   3: 2E313465-19B9-463F-8126-8A7993773801               7.3 MB     disk2s3
   4: FA709C7E-65B1-4593-BFD5-E71D61DE9B02               3.0 TB     disk2s4
   5:                 Apple_Boot Boot OSX                134.2 MB   disk2s5
/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk3
   1:                        EFI EFI                     209.7 MB   disk3s1
   2: B6FA30DA-92D2-4A9A-96F1-871EC6486200               2.3 MB     disk3s2
   3: 2E313465-19B9-463F-8126-8A7993773801               7.3 MB     disk3s3
   4: FA709C7E-65B1-4593-BFD5-E71D61DE9B02               3.0 TB     disk3s4
   5:                 Apple_Boot Boot OSX                134.2 MB   disk3s5
/dev/disk4 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk4
   1:                        EFI EFI                     209.7 MB   disk4s1
   2: B6FA30DA-92D2-4A9A-96F1-871EC6486200               2.3 MB     disk4s2
   3: 2E313465-19B9-463F-8126-8A7993773801               7.3 MB     disk4s3
   4: FA709C7E-65B1-4593-BFD5-E71D61DE9B02               3.0 TB     disk4s4
   5:                 Apple_Boot Boot OSX                134.2 MB   disk4s5
/dev/disk5 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *3.0 TB     disk5
   1:                        EFI EFI                     209.7 MB   disk5s1
   2: B6FA30DA-92D2-4A9A-96F1-871EC6486200               2.3 MB     disk5s2
   3: 2E313465-19B9-463F-8126-8A7993773801               7.3 MB     disk5s3
   4: FA709C7E-65B1-4593-BFD5-E71D61DE9B02               3.0 TB     disk5s4
   5:                 Apple_Boot Boot OSX                134.2 MB   disk5s5
/dev/disk6 (virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS SoftTM5                +9.0 TB     disk6
/dev/disk7 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *4.0 TB     disk7
   1:                        EFI EFI                     209.7 MB   disk7s1

   2:                  Apple_HFS SD2                     4.0 TB     disk7s2


  - 이번에는 disk6에 SoftRAID로 잡은 'SoftTM5'라는 volume이 보이고, 당연히 Timemachine에서도 백업 디스크로 잘 붙으며 time machine 백업도 성공적으로 마쳤음
  - 이 백업으로 cmd-R 부팅 후 리커버리가 가능한지를 알아봤음. 결론적으로 가능함.
  - 리커버리 부팅 후 'Time machine으로부터 복원'을 선택하면 다음과 같이 보임




즉, 'SoftTM5'가 보이고, 이 RAID에 백업된 내용으로 Mac을 복원할 수 있다는 것임.

  - 단점으로는 유료 SW인데, 180불 정도로 가격부담이 크고 업그레이드 가격도 90불 정도로 낮지 않다는 점

o 현재까지 결론
  - RAID5가 가능한 방법에는 아직까지는 별로 추천할 만한 것이 없음