Web更新

宮崎悟氏のUbuntuでZFSを使ってみよう第3回 「ZFSで使用できるストレージプールを確認しよう(1)」

前回のおさらい

前回は100MBのファイルを使用して、zpoolを作成してみました。指摘されて気づいたのですが、100MBの領域なのに、zpoolでは80MB、zfsでは40MBとかなり少なくなっています。
これは、zpoolおよびzfsの管理領域として、ある程度大きい領域を使用するためです。実際には数TBのzpoolを使うことが殆どで、その場合どれほど増やしても200MB程度でした。今回はテストのため、小さい領域を作ったためこのような減少が起きたのです。興味深いですね。

さて、今回は、zpoolで、色々なボリュームが作成できることを説明したいと思います。

ストライプ

ストライプとは、いわゆるRAID0に辺りディスクに分散してファイルの読み書きを行うものです。ZFSでは正確にはストライプとは違うのですが、ストライプに近いことを行うことが出来ます。

# dd if=/dev/zero of=/tmp/disk1 bs=$((1024*1024)) count=1000

# dd if=/dev/zero of=/tmp/disk2 bs=$((1024*1024)) count=2000

# zpool create tank /tmp/disk1 /tmp/disk2

# zpool list tank

NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT

tank  2.91G   273K  2.91G         –     0%     0%  1.00x  ONLINE  –

$ zpool status tank

pool: tank

state: ONLINE

scan: none requested

config:

 

NAME          STATE     READ WRITE CKSUM

tank          ONLINE       0     0     0

/tmp/disk1  ONLINE       0     0     0

/tmp/disk2  ONLINE       0     0     0

 

errors: No known data errors

 

ディスクサイズが変わっても結合できます。また、以下のように後からディスクを追加することも可能です。

# dd if=/dev/zero of=/tmp/disk3 bs=$((1024*1024)) count=1000
# zpool add tank /tmp/disk3
# zpool list tank
NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
tank  3.88G   124K  3.87G         –     0%     0%  1.00x  ONLINE  –
root@ubuntu-bionic:~# zpool status
pool: rpool
state: ONLINE
scan: none requested
config:NAME                                   STATE     READ WRITE CKSUM
rpool                                  ONLINE       0     0     0
pci-0000:00:14.0-scsi-0:0:2:0-part1  ONLINE       0     0     0errors: No known data errors

ミラー

RAID1も使用可能です。しかもトリプルミラー可能です。ミラーの場合、同じサイズのディスクでないといけません。

# zpool destroy tank
# zpool create tank mirror /tmp/disk1 /tmp/disk3
# zpool list tank
NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
tank   992M   273K   992M         –     0%     0%  1.00x  ONLINE  –
# zpool status tank
pool: tank
state: ONLINE
scan: none requested
config:
NAME            STATE     READ WRITE CKSUM
tank            ONLINE       0     0     0
mirror-0      ONLINE       0     0     0
/tmp/disk1  ONLINE       0     0     0
/tmp/disk3  ONLINE       0     0     0errors: No known data errors# dd if=/dev/zero of=/tmp/disk4 bs=$((1024*1024)) count=1000
# zpool attach tank  /tmp/disk1  /tmp/disk4
# zpool list tank
NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
tank   992M   178K   992M         –     0%     0%  1.00x  ONLINE  –
# zpool status tank
pool: tank
state: ONLINE
scan: resilvered 82.5K in 0h0m with 0 errors on Tue Dec  4 14:01:49 2018
config:NAME            STATE     READ WRITE CKSUM
tank            ONLINE       0     0     0
mirror-0      ONLINE       0     0     0
/tmp/disk1  ONLINE       0     0     0
/tmp/disk3  ONLINE       0     0     0
/tmp/disk4  ONLINE       0     0     0errors: No known data errors

このように、通常の2面ミラーだけでなく、3面以上のミラーも可能で、しかも後から追加可能になります。

次回は、ストレージプールについて引き続き語りたいと思いますので、お楽しみにお願いします。

さて、このコラムを掲載いただいているデジタル・ヒュージ・テクノロジー社は老舗のOSSインテグレーターです。特にLinuxは強く、OSSを活用した業務システムの実績も多いです。興味がある方は以下のページもご覧ください。

DHT OSS導入コンサルティングサービス

https://kusanagi.dht-jpn.co.jp/solutions/dht-oss-consulting/

 

 

関連記事一覧