既に構築したストレージプールを増やすお話
*実機ではなくVMwareで構築したubuntuマシンでテストしてます
システムディスク1台の他に8台のHDDを用意して、その8台でraidz2を構築した。
| HDD | 容量(OS認識容量)* | 用途 |
| /dev/sda | 8GB(8590MB) | システムディスク |
| /dev/sdb〜/dev/sdi | 8本、各32GB(各34.4GB) | zfs ストレージプール |
*VMwareで指定した容量、カッコ内はubuntuにて認識された容量
root@n1:~# zpool create tank raidz2 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi
root@n1:~# zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
tank 254G 168K 254G - 0% 0% 1.00x ONLINE -
root@n1:~#
root@n1:~# df -lTh -t zfs
Filesystem Type Size Used Avail Use% Mounted on
tank/home zfs 185G 0 185G 0% /home
tank zfs 185G 0 185G 0% /tank
root@n1:~#ストレージプール「tank」は 254G とされているが、raidz2なので実際にはパリティ2種分が除かれ 185G となる
254*(6/8)=190.5とも32*(8-6)=192とも違う...
このストレージプール「tank」の容量を増やしてみる。
無理。できません。
root@n1:~# zpool add tank /dev/sdj
invalid vdev specification
use '-f' to override the following errors:
mismatched replication level: pool uses raidz and new vdev is disk
root@n1:~#soft-RAID#w255da9cのオンライン容量拡張のようにできるかな?って思ったのだが無理でした。
どうも同じストレージプール構成(ここではraid-z2)でしかないと追加できないみたい
追加HDD
| HDD | 容量(OS認識容量)* | 用途 |
| /dev/sdj〜/dev/sdm | 4本、各16GB | zfs ストレージプール追加 |
root@n1:~# zpool add tank raidz2 /dev/sdj /dev/sdk /dev/sdl /dev/sdm
invalid vdev specification
use '-f' to override the following errors:
mismatched replication level: pool uses 8-way raidz and new vdev uses 4-way raidz
root@n1:~#初回のストレージプールを作った際8本のraidz2でした。
同じ構成(raid-z2)ならいいのかな?って思ったけど、これも無理。駄目でした。
追加HDD
| HDD | 容量(OS認識容量)* | 用途 |
| /dev/sdj〜/dev/sdm | 4本、各16GB | zfs ストレージプール追加 |
root@n1:~# zpool add tank raidz2 /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp /dev/sdq
root@n1:~# zpool status -P
pool: tank
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
/dev/sdb1 ONLINE 0 0 0
/dev/sdc1 ONLINE 0 0 0
/dev/sdd1 ONLINE 0 0 0
/dev/sde1 ONLINE 0 0 0
/dev/sdf1 ONLINE 0 0 0
/dev/sdg1 ONLINE 0 0 0
/dev/sdh1 ONLINE 0 0 0
/dev/sdi1 ONLINE 0 0 0
raidz2-1 ONLINE 0 0 0
/dev/sdj1 ONLINE 0 0 0
/dev/sdk1 ONLINE 0 0 0
/dev/sdl1 ONLINE 0 0 0
/dev/sdm1 ONLINE 0 0 0
/dev/sdn1 ONLINE 0 0 0
/dev/sdo1 ONLINE 0 0 0
/dev/sdp1 ONLINE 0 0 0
/dev/sdq1 ONLINE 0 0 0
errors: No known data errors
root@n1:~#と一応は追加できた。
ストレージプールサイズは
root@n1:~# zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
tank 381G 308K 381G - 0% 0% 1.00x ONLINE -
root@n1:~#254Gから381Gへ127G増えた計算になります。16GBのHDDが8本なので16*8=128GBとストレージプールのサイズは正しい。
ファイルシステム上では
root@n1:~# df -lTh -t zfs
Filesystem Type Size Used Avail Use% Mounted on
tank/home zfs 277G 0 277G 0% /home
tank zfs 277G 0 277G 0% /tank
root@n1:~#と
185Gから277Gへと92G増えた。これも16*(8-2)=96Gとまぁだいたいあっている。
ストレージプール「tank」への新たなraid-z2ボリュームの追加をせず、既存のraid-z2を構成するHDDを
一つずつ交換して、容量増加を図る方法。これはできるそうな。こんな感じみたいsoft-RAID#mb8c1cab