FC2ブログ

[Solaris]ZFS

あけましておめでとうございます。

参照先

Solaris ZFS集中講座(1):Solaris ZFSの基本的な仕組みを知る (1/3)
http://www.atmarkit.co.jp/ait/articles/0903/13/news125.html

Solaris ZFS集中講座(2):Solaris ZFSの機能を点検する (1/3)
http://www.atmarkit.co.jp/ait/articles/0904/15/news121.html

Solaris ZFS集中講座(3):ZFSはどう活用できるか (1/3)
http://www.atmarkit.co.jp/ait/articles/0905/28/news108.html

ZFSでストレージ でも、ストレージだけじゃないZFS
http://www.slideshare.net/satorumiyazaki/hbstudy12-zfs

Oracle Solaris ZFS 管理ガイド
http://docs.oracle.com/cd/E19253-01/819-6260/gazgw/index.html


今さらながら ZFS 環境に SSD を足して L2ARC を使ってみる
http://w.vmeta.jp/tdiary/20140519.html




ZFSコマンド

状態確認
zfs-stats



状態確認
zpool status tank



iSCSIのVolume用に100GBytesを作成してサービスを開始するコマンド例
# zfs create -V 100g tank/iscsi-vol
# zfs set shareiscsi=on tank/iscsi-vol



ストレージプール作成 (RAIDZ + ZIL(log) + L2ARC(cache))
zpool create tank raidz c2t0d0 c2t1d0 c2t2d0 c2t3d0 log c2t4d0 cache c2t5d0



ストレージプール作成 (RAIDZ + ZILミラー(log))
zpool create tank raidz c2t0d0 c2t1d0 c2t2d0 c2t3d0 log mirror c2t4d0 c2t5d0



ストレージプール追加 (RAIDZ + ZIL(log))
zpool add tank raidz c2t0d0 c2t1d0 c2t2d0 c2t3d0 log c2t4d0
 ※ 既存構成と同じ場合に追加可能。




zfs-stats
状態確認スクリプト。
FreeBSDだとインストール方法は以下らしい。
#cd /usr/ports/sysutils/zfs-stats
#make install
Solarisの方法は調べ中。




故障時の交換、修復手順
https://docs.oracle.com/cd/E24845_01/html/819-6260/gbbvf.html

最初に行うことは、zpool status 出力のエラー数を調べる

zpool status -v tpool


一時的なエラーと判断した場合

このコマンドで、すべてのデバイスエラーと、デバイスに関連付けられたすべてのデータエラー数を消去。
zpool clear tank c1t1d0
プール内の仮想デバイスに関連付けられているすべてのエラーを消去し、プールに関連付けられているすべてのデータエラー数を消去するには、以下。
zpool clear tank



故障ディスクが置き換え可能か調べる

c1t1d0 ディスクは置き換えることができます。プール内のすべてのデータは正常な複製 c1t0d0 からコピーされます。
mirror DEGRADED
c1t0d0 ONLINE
c1t1d0 FAULTED



次の構成では、障害が発生したどのディスクも置き換えることができません。プール自体に障害が発生しているため、ONLINE 状態のディスクも置き換えることができません。
raidz FAULTED
c1t0d0 ONLINE
c2t0d0 FAULTED
c3t0d0 FAULTED
c4t0d0 ONLINE



ストレージプール内のデバイスを置き換える

損傷したデバイスを別のデバイスに置き換える場合は、次のような構文を使用します。
# zpool replace tank c1t1d0 c2t0d0





zpool create -n
-nをつけると、仮想的にコマンド実行して、問題あればエラーを表示してくれる。
正常に実行出来たら、生成されるストレージプール構成が表示される。
しかし、-nオプション無しで実際に実行しないと現れないエラーもあるらしい。








トラブルシューティング

zpool create tank raidz2 A B C でハングする
3TB HDD x 3本だからか? 反応が無く時間かかり過ぎ。500GBでcreateした時はすぐだったのだが。

zpool create tank raidz A B C
でも同様にフリーズ。
zpool create data mirror A B
だとフリーズせず、すぐに完了した。
これ単にRAIDZ/RAIDZ2のプール作成に数時間かかるって話かな?

2TB以上のディスクはGPTパーティションにしないと扱えないらしい。
現状のタイプを確認してみる。

# parted -l
  ※ これは、改行をなくして、各ディスク情報を1行にまとめたもの。

Model: Generic Ide (ide) Disk /dev/dsk/c1t0d0p0: 3001GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 131kB 3001GB 3001GB zfs 9 3001GB 3001GB 8389kB

Model: Generic Ide (ide) Disk /dev/dsk/c1t1d0p0: 3001GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 131kB 3001GB 3001GB zfs 9 3001GB 3001GB 8389kB

Model: Generic Ide (ide) Disk /dev/dsk/c1t2d0p0: 250GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 131kB 250GB 250GB zfs 9 250GB 250GB 8389kB

Model: Generic Ide (ide) Disk /dev/dsk/c1t3d0p0: 3001GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 131kB 3001GB 3001GB zfs 9 3001GB 3001GB 8389kB

Model: Generic Ide (ide) Disk /dev/dsk/c1t4d0p0: 128GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 131kB 128GB 128GB zfs 9 128GB 128GB 8389kB

Model: Generic Ide (ide) Disk /dev/dsk/c1t5d0p0: 3001GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 131kB 3001GB 3001GB zfs 9 3001GB 3001GB 8389kB

Model: Generic Ide (ide) Disk /dev/dsk/c1t6d0p0: 3001GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 131kB 3001GB 3001GB zfs 9 3001GB 3001GB 8389kB

Error: /dev/dsk/c1t7d0p0: unrecognised disk label
Error: /dev/dsk/c1t8d0p0: unrecognised disk label
Error: /dev/dsk/c1t9d0p0: unrecognised disk label

Model: Generic Ide (ide) Disk /dev/dsk/c2t0d0p0: 3001GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 131kB 3001GB 3001GB zfs 9 3001GB 3001GB 8389kB

Model: Generic Ide (ide) Disk /dev/dsk/c2t1d0p0: 3001GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 131kB 3001GB 3001GB zfs 9 3001GB 3001GB 8389kB

Model: Generic Ide (ide) Disk /dev/dsk/c2t2d0p0: 4311MB Sector size (logical/physical): 2048B/512B Partition Table: msdos Number Start End Size File system Flags 2 4399kB 30.6MB 26.2MB primary

Model: Generic Ide (ide) Disk /dev/dsk/c2t3d0p0: 64.0GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 131kB 269MB 268MB fat32 boot 2 269MB 64.0GB 63.7GB zfs 9 64.0GB 64.0GB 8389kB



赤字のHDD x2では、
zpool create tank mirror A B
ですんなり実行出来た。
parted -lの結果を見る限り、全く同じ構成になってる青字HDD x2でやるとフリーズ。
やはり動作は正常で、単に3TBx2本の領域をフォーマットか何かしてるって事かな?

次に、GPTラベルをまだ付けてないHDDに対して、parted /dev/rdsk/c1t7d0p0 > mklabel gptでラベルを付与。
Error: /dev/dsk/c1t7d0p0: unrecognised disk label
Error: /dev/dsk/c1t8d0p0: unrecognised disk label
Error: /dev/dsk/c1t9d0p0: unrecognised disk label
それから以下-nで試すと、正常にプール作成出来る、と言われた。

# zpool create -n tank mirror c1t7d0 c1t8d0
would create 'tank' with the following layout:

  tank
   mirror
    c1t7d0
    c1t8d0


なので、今度は-n無しで実際に作成してみると・・・応答無い・・・

# zpool create tank mirror c1t7d0 c1t8d0
・・・・ 応答がない ・・・


やってる事は正しいと思うので、何時間か待ってみよう。
おそらくCPU、メモリパワーが弱く、3TBにZFSファイルシステムを構築するのに時間かかってるだけだと思う・・・きっと。

もう9時間が経過した。。。やはりおかしい。
/var/adm/messages
なるログファイルを見てみる。

Jan 8 xxxxx h67 ahci: [ID 517647 kern.warning] WARNING: ahci1: watchdog port 10 satapkt 0xffffa100181c5418 timed out
Jan 8 xxxxx h67 ahci: [ID 262729 kern.warning] WARNING: ahci1: ahci_port_reset port 10 COMINIT signal from the device not received


しっかり変なワーニングが出てる。

これって、ここで指摘しているバグなのかな?
https://www.illumos.org/issues/3797

うちで使ってるHBAもちょうど指摘通り。
ASMedia社製 ASM1062+JMB575(x2)搭載 SATA3 x10 インターフェースカード(PCI-Express x2接続)
http://www.kuroutoshikou.com/product/interface/ata_sata/sata3i10-pcie/

そいや、接続してるSATA HDDの一部でmirrorやったらすんなり実行出来た。
あれはマザーボード直結のHDDだったから問題出なかったって事かな。


/dev/dsk/c2t3d0s0 contains a pcfs filesystem

# zpool create tank raidz2 c2t0d0 c2t1d0 c2t3d0
vdev verification failed: use -f to override the following errors:
/dev/dsk/c2t3d0s0 contains a pcfs filesystem.
/dev/dsk/c2t3d0s1 is part of active ZFS pool rpool. Please see zpool(1M).
Unable to build pool from specified devices: device already in use


3番目のc2t3d0は、OS用で既に使っているものだった。間違えた。

メモ

http://docs.oracle.com/cd/E19253-01/819-6260/gaypw/index.html
ルートプールに使用するディスクには VTOC (SMI) ラベルが必要。
また、ディスクスライスを使用してプールを作成する必要があり。

スポンサーサイト



コメントの投稿

非公開コメント

カレンダー
01 | 2020/02 | 03
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
累積訪問者
現在の訪問者
現在の閲覧者数:
最新記事
最新トラックバック
最新コメント
月別アーカイブ
カテゴリ
プロフィール

bobgosso

Author:bobgosso
FPGAのブログへようこそ!

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード