やっぱり Sun がスキ! : Weblog やっぱり Sun がスキ!

やっぱり Sun がスキ!

http://blogs.sun.com/yappri/date/20070528 2007年 5月 28日 月曜日

USBメモリで ZFS !

 Solaris 10 6/06 から実装されている革新的な新機能 ZFS 。
 魅力的な機能であると知りつつも実際に ZFS で RAID 構成を
 構築するとなるとストレージデバイスが多数なければ意味を成さず
 自宅のパソコンに Solaris 10 の検証環境を構築している方などは
 興味があるものの手が出せず・・「残念!」っとお思いでは無いで
 しょうか?

 そんな皆さんに朗報です! ZFS 構築に必要なものは最近、価格的
 にもお手軽になりつつある USB メモリ数本と USB ハブのみ。

   

 そうです USB メモリを使って ZFS環境を構築してしまおう!と言う
 のが、本文の主旨です。USBメモリを ZFS の構築デバイスとして使用
 する事は正式にサポートされる構成ではありませんが、ZFS を学ぶ為の
 教材環境としてはお手軽かつ画期的な手段であると思います。

 実は単純に USB メモリを接続するだけでは ZFS 環境を USB メモリ上に
 構築することはできません。あれこれと試行錯誤を行い少し強引な方法
 ではありますが見事! USB メモリを活用しての ZFS 環境の構築に成功
 する事ができましたので、その手順を皆様へご紹介いたします。

 ※ ZFS で使用するには format コマンド上で 64MB 以上の容量が必要ですので
  目減り分を考えると 128MB 以上の USB メモリを用意する必要があります。

 【1】まず volfs サービスを止めます。

# svcadm disable volfs
 【2】USBメモリを挿して「format -e 」を入力。

# format -e
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c1d0 
          /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0
       1. c8t0d0 
          /pci@0,0/pci104d,81b9@1d,7/hub@3/storage@4/disk@0,0
Specify disk (enter its number): 
 【3】表示されたデバイス名をもとに fdisk コマンドにてパーティションを切り直します。
  (A) Partition 情報の表示を行う。
  (B) 3. Delete a partition で既存のパーティションを消去する。
     ※注意:既存データは全て消えます

# fdisk /dev/rdsk/c8t0d0p0

             Cylinder size is 2048 (512 byte) blocks

                                               Cylinders
      Partition   Status    Type          Start   End   Length    %
      =========   ======    ============  =====   ===   ======   ===
          1       Active    DOS-BIG           1   966     966    100





SELECT ONE OF THE FOLLOWING:
   1. Create a partition
   2. Specify the active partition
   3. Delete a partition
   4. Change between Solaris and Solaris2 Partition IDs
   5. Exit (update disk configuration and exit)
   6. Cancel (exit without updating disk configuration)
Enter Selection:3
  (C) 1. Create a partition で Solaris 向けパーティションを作成。
    ※ Type はSolaris2 を選択し容量は 100% を割り当てる。
  (D) 5. Exit (update disk configuration and exit) を選択して終了。




             Total disk size is 967 cylinders
             Cylinder size is 2048 (512 byte) blocks

                                               Cylinders
      Partition   Status    Type          Start   End   Length    %
      =========   ======    ============  =====   ===   ======   ===
          1       Active    Solaris2          1   966     966    100





SELECT ONE OF THE FOLLOWING:
   1. Create a partition
   2. Specify the active partition
   3. Delete a partition
   4. Change between Solaris and Solaris2 Partition IDs
   5. Exit (update disk configuration and exit)
   6. Cancel (exit without updating disk configuration)
Enter Selection: 
 【4】「format -e」コマンドにて label の作成

   ※ スライス0番に全容量をアサインし SMI Label を選択するのがミソです。

partition> p
Current partition table (original):
Total disk cylinders available: 964 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders       Size            Blocks
  0       root    wm       1 - 963      963.00MB    (963/0/0) 1972224
  1 unassigned    wm       0              0         (0/0/0)         0
  2 unassigned    wu       0              0         (0/0/0)         0
  3 unassigned    wm       0              0         (0/0/0)         0
  4 unassigned    wm       0              0         (0/0/0)         0
  5 unassigned    wm       0              0         (0/0/0)         0
  6 unassigned    wm       0              0         (0/0/0)         0
  7 unassigned    wm       0              0         (0/0/0)         0
  8       boot    wu       0 -   0        1.00MB    (1/0/0)      2048
  9 unassigned    wm       0              0         (0/0/0)         0

partition> label
[0] SMI Label
[1] EFI Label
Specify Label type[0]: 0
Ready to label disk, continue?y
 【5】後は同作業を本数本繰り返して行い前処理が終わった USB メモリに対して
   「zpool create」コマンドで ZFS pool を作れば完成です!

# zpool create -f usb-raidz raidz c8t0d0p0 c9t0d0p0 c10t0d0p0 c11t0d0p0
# zpool status                                                         
  プール: usb-raidz
 状態: ONLINE
 スクラブ: 何も要求されませんでした
構成:

        NAME           STATE     READ WRITE CKSUM
        usb-raidz      ONLINE       0     0     0
          raidz1       ONLINE       0     0     0
            c8t0d0p0   ONLINE       0     0     0
            c9t0d0p0   ONLINE       0     0     0
            c10t0d0p0  ONLINE       0     0     0
            c11t0d0p0  ONLINE       0     0     0

エラー: 既知のデータエラーはありません
 アクセス時にLEDが点灯する USB メモリを用いれば見た目も綺麗な ZFS の
 デモ環境が出来上がります。非常にコンパクトに収まるので ZFS デモ環境の
 持ち運びも苦労しません♪

      

 ZFS で USB メモリをデバイス対象とすることは正式にはサポートされて
 いない構成であり、今回の構築の方法も少々強引な設定でありますので、
 利用の用途はデモ教材などに限られ、作業にあたっては機材の故障リスク
 やデータ破壊の危険性への認識が必要です。

  USB メモリを利用した ZFS 環境の構築は、楽しみながら ZFS への興味
 と理解を深める事が出来るものと思います。上記の注意を踏まえて頂いた
 上で是非チャレンジしてみては如何でしょうか?

☆ 機材費(自腹):約 8,000円
☆ ZFS への深まる思い:プライスレス!