検索

ZFS FreeBSD 編集中

サーバー内のデーターを安全に自己管理して運用するならば、ZFS は魅力的です. CPU のパワーが必要なので、最新機種で試してみよう.
zfs

安全性の高いファイルシステムZFS

FreeBSD を使う理由の一つですが、

簡単に、ミラーリングとスナップショットが使えるところが良い.

しかし詳しくないので、健忘録のみなので、あまり参考にはならないです.

参考サイト

FreeBSDでZFSを設定してみる。

 

ZFSでRAID1インストールがオススメかも

データーを守る点からは、ZFS はメリットが多いファイルシステムだが、スピードは遅いらしい.

インストール時に同容量のハードディスク2枚をサーバーにセットして、ZFS RAID1 Mirroring させるのが、良い方法だと思います.

インストール時の設定

デフォルトのインストールは UFS になっているので、ZFS AUTO を選び直して次の画面にすると下の選択項目が現れる.

ZFS の初期設定は Stripe になっています

pool type / Disks : stripe : 0 disks

次の画面で 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

ミラーとして追加

 

 

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

もくじ