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

&size(10){ベンチマーク結果[[ubuntu/zfs/bonnie++]]};
&size(10){ストレージプール容量追加[[ubuntu/zfs/HDD追加]]};

&size(10){btrfs[[ubuntu/btrfs]]};

***HDD [#fa90acb2]
8本のHDD(2.5inch)は[[ubuntu/hw-raid]]にて使用後、[[HBA]]に付け替えた。software-raidとして認識されたが、
#code(nonumber){{
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 へ変更した
だが、別にパーティションは切っていない。
#code(nonumber){{
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のインストール [#jc591a63]
単純に
#code(nonumber){{
root@e:~# apt-get install  zfsutils-linux
}}
でインストールできた。

***ストレージプール作成 [#g3115510]
/dev/sdaから/dev/sdhまでの8本のHDD(2.5inch)がある。
RAID6相当というかパリティを2つ持たせたいので、「raidz2」なストレージプール(&color(magenta){tank};)を作るには
#code(nonumber){{
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:~#
}}
これと共にストレージプール(&color(magenta){tank};)がファイルシステムに登録される
&size(10){ありがいたいのやら、やや微妙};
#code(nonumber){{
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:~#
}}
サブボリュームを作成して、それを特定のマウントポイントに当てるには
#code(nonumber){{
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 [#sfeeabfb]
ルートディスクのSSDに 133 GB ほどの空きがある。これをcacheにしてみた
まずそのデバイスを用意した。

#code(nonumber){{
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 として加える
#code(nonumber){{
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デバイスを外すには
#code(nonumber){{
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:~#
}}
1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS