安全性の高いファイルシステムZFS
FreeBSD を使う理由の一つですが、
簡単に、ミラーリングとスナップショットが使えるところが良い.
しかし詳しくないので、健忘録のみなので、あまり参考にはならないです.
参考サイト
ZFSでRAID1インストールがオススメかも
データーを守る点からは、ZFS はメリットが多いファイルシステムだが、スピードは遅いらしい.
インストール時に同容量のハードディスク2枚をサーバーにセットして、ZFS RAID1 Mirroring させるのが、良い方法だと思います.
インストール時の設定
デフォルトのインストールは UFS になっているので、ZFS AUTO を選び直して次の画面にすると下の選択項目が現れる.
ZFS の初期設定は Stripe になっています
次の画面で Select Virtual Device type :
mirror Mirror – n-Way Mirroring
を選択し、
ZFS Configuration でミラーリングするハードディスクを選択する.
Configure Options : mirror : 2 disksで確認する.
M Mirror Swap ? YES に変更してみたが、どうかな.
インストールした後から、ZFS の Mirroring のためのハードディスクを追加して RAID 1 に設定はできるのだが、インストール時にしたほうが随分と簡単にできます.
最大のメリットはスナップショットとロールバック
ZFSのスナップショットは、一瞬でHDD ( ハードディスク ) の状態をコピーすることができる.
ZFSのロールバックは、スナップショットした時の状態に一瞬で戻ることができる.
すごいですね!
制限があるので、理解する必要はあると思います.
各が調べてください. ( すみません、詳しくないので )
スナップショット
ZFSの確認
# zfs list NAME USED AVAIL REFER MOUNTPOINT zroot 9.77G 2.62T 96K /zroot zroot/ROOT 8.96G 2.62T 96K none zroot/ROOT/default 8.96G 2.62T 8.24G / zroot/tmp 740K 2.62T 544K /tmp zroot/usr 736M 2.62T 96K /usr zroot/usr/home 240K 2.62T 160K /usr/home zroot/usr/ports 735M 2.62T 735M /usr/ports zroot/usr/src 96K 2.62T 96K /usr/src zroot/var 81.7M 2.62T 96K /var zroot/var/audit 96K 2.62T 96K /var/audit zroot/var/crash 96K 2.62T 96K /var/crash zroot/var/log 77M 2.62T 76.8M /var/log zroot/var/mail 2.96M 2.62T 2.84M /var/mail zroot/var/tmp 1.48M 2.62T 1016K /var/tmp
スナップショットを作ってみる
ハードディスクは、zroot
スナップショット名 snap2104
# zfs snapshot -r zroot@snap2104
一瞬でスナップショットでコピーされる.
正式には、コピーではなく、スナップされた瞬間を写真を撮るように記憶されるということだろう.
作ったスナップショットの確認
スナップを確認してみる.
# zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT zroot@snap2104 0 - 88K - zroot/ROOT@snap2104 0 - 88K - zroot/ROOT/default@snap2104 0 - 11.1G - zroot/tmp@snap2104 0 - 199M - zroot/usr@snap2104 0 - 88K - zroot/usr/home@snap2104 0 - 356G - zroot/usr/ports@snap2104 0 - 1.23G - zroot/usr/src@snap2104 0 - 88K - zroot/var@snap2104 0 - 88K - zroot/var/audit@snap2104 0 - 88K - zroot/var/crash@snap2104 0 - 88K - zroot/var/log@snap2104 0 - 309M - zroot/var/mail@snap2104 0 - 95.3M - zroot/var/tmp@snap2104 0 - 3.45M -
作ったスナップショットの破棄
スナップショットの破棄
# zfs destroy -r zroot@snap2104 # zfs list -t snapshot no datasets available
のようにスナップショットが破棄される.
ロールバック
スナップショットを作った時に一瞬でハードディスクの状態に戻すことができるロールバック
# zfs snapshot -r zroot@snap_org スナップショットを作る # zfs rollback zroot/ROOT/default@snap_org ロールバックする
ロールバックすると、スナップショットを作った状態に戻るようだ.
一応自分では確かめたつもりだが、間違っていたら 一報いただけると良いなと思う
ZFS を使ったハードディスクのミラーリング
ZFS のメリットの2つ目は、RAID ( Redundant Array of Independent Disk ) が比較的簡単に構築できること.
個人のサイトでは、 RAID1 ( Mirroring ) ミラーリングを使って、2台の HDD に同じデーターを書き込んで、ハードディスクが 1 台が故障しても、大丈夫な方法を取ります. ( 同時にハードディスクが2台故障した場合は、データーの復旧はできませんが.)
ハードディスクの接続状態の確認
ディバイス ada0 に FreeBSD を ZFS でインストールしてあって、ada1 に新しくハードディスクを接続したとします.
サーバーを起動してディバイス名の確認をします.
# dmesg ada0 at ahcich1 bus 0 scbus1 target 0 lun 0 ada0: <WDC WD30EFRX-68EUZN0 82.00A82> ACS-2 ATA SATA 3.x device ada0: Serial Number WD-WCC4N6HX679H ada0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes) ada0: Command Queueing enabled ada0: 2861588MB (5860533168 512 byte sectors#f5f2f0) ada0: quirks=0x1<4K> ada1 at ahcich2 bus 0 scbus2 target 0 lun 0 ada1: <WDC WD40EFRX-68N32N0 80.00A80> ACS-3 ATA SATA 3.x device ada1: Serial Number WD-WCC7K7SD0FZD ada1: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes) ada1: Command Queueing enabled ada1: 3815447MB (7814037168 512 byte sectors) ada1: quirks=0x1<4K>
ハードディスクの接続のされ方によって、FreeBSD のディバイス名 ( ada0 , ada1 ) が異なりますので、注意が必要です.
この場合、ada0 に ada1 を追加してミラーリングさせたい.
zpool
zpool の確認
# zpool status zroot pool: zroot state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zroot ONLINE 0 0 0 ada0p4 ONLINE 0 0 0 errors: No known data errors
FreeBSDではpool 名は、 zroot がデフォルトになるようです.
gpart backup 元のディスク | gpart restore コピー先のディスク
とすれば良いそうだ.
# gpart show ada0 => 40 7814037088 ada0 GPT (3.6T) 40 409600 1 efi (200M) 409640 1024 2 freebsd-boot (512K) 410664 984 - free - (492K) 411648 4194304 3 freebsd-swap (2.0G) 4605952 7809429504 4 freebsd-zfs (3.6T) 7814035456 1672 - free - (836K) # gpart show ada1 gpart: No such geom: ada1. # gpart backup ada0 | gpart restore ada1 $ gpart show ada1 => 40 7814037088 ada1 GPT (3.6T) 40 409600 1 efi (200M) 409640 1024 2 freebsd-boot (512K) 410664 984 - free - (492K) 411648 4194304 3 freebsd-swap (2.0G) 4605952 7809429504 4 freebsd-zfs (3.6T) 7814035456 1672 - free - (836K)
交換時
# zpool attach zroot ada0 ada1
ミラーとして追加