LSI(Avago)の SAS 9300-9i(HBA) を入手した
マザーボード上のSATAポートでzfsを組んでも構わないのだが、2.5インチ8本エンクロージャを再活用するために導入
sataポート追加のpcieカードでもよかったのだが

ベンチマーク結果ubuntu/zfs/bonnie++
ストレージプール容量追加ubuntu/zfs/HDD追加

btrfsubuntu/btrfs

HDD

8本のHDD(2.5inch)はubuntu/hw-raidにて使用後、HBAに付け替えた。software-raidとして認識されたが、

root@e:~# mdadm --manage /dev/md126 --stop
root@e:~# cat /proc/partitions
major minor  #blocks  name
(略
   8       96  976762584 sdg
   8       32  976762584 sdc
   8        0  976762584 sda
   8       64  976762584 sde
   8       16  976762584 sdb
   8      112  976762584 sdh
   8       80  976762584 sdf
   8       48  976762584 sdd
root@e:~#

とsoftware-raidを停止させ、各HDDのパーティションテーブルを gpt へ変更した
だが、別にパーティションは切っていない。

root@e:~# parted  /dev/sda
GNU Parted 3.2
/dev/sda を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) p
モデル: ATA TOSHIBA MQ01ABD1 (scsi)
ディスク /dev/sda: 1000GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: loop
ディスクフラグ:
 
番号  開始   終了    サイズ  ファイルシステム  フラグ
 1    0.00B  1000GB  1000GB  xfs
 
(parted) mklabel gpt
警告: いま存在している /dev/sda のディスクラベルは破壊され、このディスクの全データが失われま す。続行しますか?
はい(Y)/Yes/いいえ(N)/No? y
(parted) q
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
 
root@e:~#

ここで一旦マシンを再起動させ software-raid の構成が途絶えたことを確認。

zfsのインストール

単純に

root@e:~# apt-get install  zfsutils-linux

でインストールできた。

ストレージプール作成

/dev/sdaから/dev/sdhまでの8本のHDD(2.5inch)がある。
RAID6相当というかパリティを2つ持たせたいので、「raidz2」なストレージプール(tank)を作るには

root@e:~# zpool create tank raidz2 /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh
 
root@e:~# zpool list
NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
tank  7.25T   828K  7.25T         -     0%     0%  1.00x  ONLINE  -
 
root@e:~#
root@e:~# zpool status tank
  pool: tank
 state: ONLINE
  scan: none requested
config:
 
        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          raidz2-0  ONLINE       0     0     0
            sda     ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0
            sdd     ONLINE       0     0     0
            sde     ONLINE       0     0     0
            sdf     ONLINE       0     0     0
            sdg     ONLINE       0     0     0
            sdh     ONLINE       0     0     0
 
errors: No known data errors
root@e:~#

これと共にストレージプール(tank)がファイルシステムに登録される
ありがいたいのやら、やや微妙

root@e:~# df -lTh -F zfs
Filesystem     Type  Size  Used Avail Use% Mounted on
tank           zfs   5.0T  128K  5.0T   1% /tank
root@e:~#

サブボリュームを作成して、それを特定のマウントポイントに当てるには

root@e:~# zfs create tank/export
root@e:~# df -lTh -F zfs
Filesystem     Type  Size  Used Avail Use% Mounted on
tank           zfs   5.0T  256K  5.0T   1% /tank
tank/export    zfs   5.0T  256K  5.0T   1% /tank/export
root@e:~#
root@e:~# zfs umount tank/export
root@e:~# df -lTh -F zfs
Filesystem     Type  Size  Used Avail Use% Mounted on
tank           zfs   5.0T  256K  5.0T   1% /tank
root@e:~#
root@e:~# mkdir /export
root@e:~# zfs set mountpoint=/export tank/export
root@e:~# zfs list
NAME          USED  AVAIL  REFER  MOUNTPOINT
tank          845K  4.99T   205K  /tank
tank/export   205K  4.99T   205K  /export
root@e:~# df -lTh -F zfs                                   <--- ファイルシステムにはまだ反映されていない
Filesystem     Type  Size  Used Avail Use% Mounted on
tank           zfs   5.0T  256K  5.0T   1% /tank
root@e:~# zfs mount tank/export                            <--- ここでファイルシステムに反映される
root@e:~# df -lTh -F zfs
Filesystem     Type  Size  Used Avail Use% Mounted on
tank           zfs   5.0T  256K  5.0T   1% /tank
tank/export    zfs   5.0T  256K  5.0T   1% /export
root@e:~#

「tank」をそのまま/exportにすればいいのでは?と思えるが、tankは「ストレージプール」で、そこから切り出した領域をファイルシステムに供出する形なので、このまま。

cache

ルートディスクのSSDに 133 GB ほどの空きがある。これをcacheにしてみた
まずそのデバイスを用意した。

root@e:~# parted /dev/sdi
GNU Parted 3.2
/dev/sdi を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) unit s
(parted) p
モデル: ATA TOSHIBA THNSNH51 (scsi)
ディスク /dev/sdi: 1000215216s
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:
 
番号  開始        終了        サイズ      ファイルシステム  名前                  フラグ
 1    2048s       1050623s    1048576s    fat32             EFI System Partition  boot, esp
 2    1050624s    2099199s    1048576s    ext4              boot                  msftdata
 3    2099200s    270534655s  268435456s  xfs               root                  msftdata
 4    270534656s  404752383s  134217728s  xfs               var                   msftdata
 5    404752384s  471861247s  67108864s   linux-swap(v1)    swap
 6    471861248s  740296703s  268435456s  xfs               home                  msftdata
(parted) mkpart
パーティションの名前?  []? cache
ファイルシステムの種類?  [ext2]? zfs
開始? 740296704s
終了? -1s
警告: 740296704s から 1000215215s (740296704 から 1000215215 セクタ)までのパーティションを指定されました。
可能な中で最も近いものは 740296704s から 1000215182s (740296704 から 1000215182 セクタ)になります。
それでもかまいませんか?
はい(Y)/Yes/いいえ(N)/No? yes
(parted) unit GB
(parted) p
モデル: ATA TOSHIBA THNSNH51 (scsi)
ディスク /dev/sdi: 512GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:
 
番号  開始    終了    サイズ  ファイルシステム  名前                  フラグ
 1    0.00GB  0.54GB  0.54GB  fat32             EFI System Partition  boot, esp
 2    0.54GB  1.07GB  0.54GB  ext4              boot                  msftdata
 3    1.07GB  139GB   137GB   xfs               root                  msftdata
 4    139GB   207GB   68.7GB  xfs               var                   msftdata
 5    207GB   242GB   34.4GB  linux-swap(v1)    swap
 6    242GB   379GB   137GB   xfs               home                  msftdata
 7    379GB   512GB   133GB   zfs               cache
 
(parted) q
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
 
root@e:~#

作ったデバイス /dev/sdi7 を zpool に cache として加える

root@e:~# zpool add tank cache /dev/sdi7
root@e:~# zpool status
  pool: tank
 state: ONLINE
  scan: none requested
config:
 
        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          raidz2-0  ONLINE       0     0     0
            sda     ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0
            sdd     ONLINE       0     0     0
            sde     ONLINE       0     0     0
            sdf     ONLINE       0     0     0
            sdg     ONLINE       0     0     0
            sdh     ONLINE       0     0     0
        cache
          sdi7      ONLINE       0     0     0
 
errors: No known data errors
root@e:~#

cacheデバイスを外すには

root@e:~# zpool remove tank sdi7
root@e:~# zpool status
  pool: tank
 state: ONLINE
  scan: none requested
config:
 
        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          raidz2-0  ONLINE       0     0     0
            sda     ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0
            sdd     ONLINE       0     0     0
            sde     ONLINE       0     0     0
            sdf     ONLINE       0     0     0
            sdg     ONLINE       0     0     0
            sdh     ONLINE       0     0     0
 
errors: No known data errors
root@e:~#

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2016-08-15 (月) 14:31:22 (283d)