Solaris 11のZFS設定



  • iSCSIターゲットサーバー
    • Solaris 10のときは ZFSのshareiscsi属性設定と iscsitadmコマンドで管理していたが、Solaris 11では SCSIブロックデバイスを管理するsbdadmコマンド、SCSIターゲットを管理するstmfコマンド、そして iSCSIターゲットを管理するitadmコマンドを使う。
    • Solaris 10のときはLUNとiSCSIターゲットが1:1で対応したが、Solaris 11ではひとつのiSCSIターゲットに複数のLUNが収納できるようになった。
    • ネタ元
    • 準備作業
      • 必要パッケージの追加とサービス起動
        • # pkg install storage-server
        • # svcadm enable stmf
        • # svcs stmf
        • # svcadm enable -r iscsi/target
        • # svcs iscsi/target
    • iSCSIターゲットの設定
      • ターゲットポータルグループ(TPG)の作成
        • # itadm create-tpg TPGIS 192.168.10.10
          • ターゲットに用いるネットワークポートをIPアドレスで指定する。
          • 作成済みのTPGにIPアドレスを追加削除するコマンドはないので、追加削除が必要な場合はTPGの作り直すことになる。
          • すでに作成済みのTPGに含まれるIPアドレスは、新たなTPGの定義に含めることができない。
        • # itadm list-tpg -v
      • TPGを指定してiSCSIターゲットを作成
        • # itadm create-target -t TPGIS
          • iSCSIターゲットサーバーが複数のネットワークポートを持っている場合、使うポートをTPGで限定することができる。
      • できたiSCSIターゲットの確認
        • # itadm list-target -v
    • 接続相手を限定するためのグループ設定
      • ターゲットグループ(TG)の作成
        • # stmfadm create-tg TGIS
        • # stmfadm offline-target iqn.1986-03.com.sun:02-1234567890-abc-1234-def-123456789
          • ターゲットがonlineのまま追加しようとするとエラーになるので、いったんofflineにする。list-targetで表示されたiqn名を指定する。
        • # stmfadm add-tg-member -g TGIS iqn.1986-03.com.sun:02-1234567890-abc-1234-def-123456789
        • # stmfadm online-target iqn.1986-03.com.sun:02-1234567890-abc-1234-def-123456789
      • イニシエータグループ(HG)の作成
        • # stmfadm create-hg HGIS
          • マニュアルでは用語が「イニシエータグループ」と「ホストグループ」と混在しているが、同じ意味と思われる。SCSI用語としてはイニシエータに統一するほうが適切なのではないか。
        • # stmfadm add-hg-member -g HGIS iqn.1998-01.com.vmware:hosta-10000000 iqn.1998-01.com.vmware:hostb-20000000
          • iSCSIボリュームを利用するイニシエータ側(例えばvSphereハイパーバイザーサーバーなど)のiqn名を指定する。
    • ストレージボリュームとLUNの設定
      • ボリュームの作成
        • # zfs create -b 4K -V 10g tank/ist
          • -bで与えるブロックサイズは、512 バイト~1M バイトの範囲で、任意の 2 の累乗を指定できる。デフォルト値は8Kバイト。VMware(VMFS-5データストア)では、サブブロックサイズを4KBで割当てるので、zfs上のブロックサイズも4Kバイトにしておくと良いかも。値を小さくするとランダムアクセス性能に優れ、値を大きくするとシーケンシャルアクセス性能に優れるので、用途に応じチューニングの余地がある。
          • 512e(AF: Advanced Format)ディスクを用いる場合は、4Kバイト以上のブロックにしないと性能が著しく低下する。512eディスクに対しては、仮想マシン上のディスクフォーマットもMBRではなくGPTにしないと、アライメントがズレてやはり性能が低下する。
        • # zfs list tank/ist
      • LUNの作成
        • # sbdadm create-lu /dev/zvol/rdsk/tank/ist
          • zfsコマンドの引数とは違い、/dev/zvol/rdsk/ を省略するとエラーになる。
        • # sbdadm list-lu
      • LUNのビュー作成
        • # stmfadm add-view -t TGIS -h HGIS 6001234567890A000000ABCDEF010001
        • # stmfadm list-view -l 6001234567890A000000ABCDEF010001
          • こうやってTGとHGの接続相手を限定しておくと、誤接続でのトラブルを防止できる。引数の長い文字列(lu-name)は、上記 stmfadm list-lu の表示結果(GUID)を使う。
          • なぜかremove-viewは失敗する。ビューを削除したいときは、LUNごと削除(stmfadm delete-lu)するしかないもよう。
    • iSCSIボリュームのサイズ拡張
      • ZFSボリュームのサイス拡張
        • # zfs set volsize=20g tank/ist
        • # zfs get volsize tank/ist
      • LUNの拡張
        • # stmfadm modify-lu -s 20g 6001234567890A000000ABCDEF010001
        • # stmfadm list-lu -v 6001234567890A000000ABCDEF010001
          • solaris 10ではZFSボリュームを拡張すればLUNも追従して自動拡張されたが、solaris 11では手動で拡張しなければならないようだ。
最終更新:2015年05月17日 20:59
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。