LoginSignup
5
8

More than 5 years have passed since last update.

ZFS on Linux を設定する(1) - ストレージプールの作成

Last updated at Posted at 2015-11-09

続き

そもそもZFSとは

on Linux でなく本家Solaris版に対する評価ですが、こちらの記事がわかりやすいと思います。用語の説明はオフィシャルサイトが詳しいでしょうか。少し使ってみて感じた個人的な評価は下記の通りです

メリット

  • クラウドサービスベンダのごとく、ありもしないディスク領域を割り当てしてみせることで ディスクの空き容量を共有できる
  • ファイルシステムレベルでRAIDが構成できる
  • 何となく堅牢な気がして安心(特にRAID5/6の書き込みホール対策)
  • 色々カスタマイズができて楽しいかもしれない

デメリット

  • 物理的にドライブを追加するのが意外と難しい
  • メモリがたくさん必要
  • 色々カスタマイズしても何となく遅い

ストレージプールを作成する

まず zpool create コマンドでストレージプールを作成します。-f はディスク上に既存の定義があっても上書きするオプションです。tank はプールにつける名称、raidzはRAID5に相当するRAIDレベルを表します。raidzの後に続くデバイスファイル(今回は4つ)でraidzを構成します。のちの構成変更に備えるため、デバイスの指定には/dev/sd[a-z]でなく /dev/disk/by-id/hoge を使うとよいです。

$ sudo zpool create -f tank raidz /dev/disk/by-id/ata-TOSHIBA_MQ01ABD100_Y4FIP28VT /dev/disk/by-id/ata-WDC_WD10EACS-00D6B0_WD-WCAU41201490 /dev/disk/by-id/ata-WDC_WD20EZRX-00D8PB0_WD-WMC4M0E2Y15L /dev/disk/by-id/ata-WDC_WD5000AADS-00S9B0_WD-WCAV90513859

プールの作成はすぐに終わり、/tank にマウントされます。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        94G  1.5G   92G   2% /
(略)
tank            1.3T  128K  1.3T   1% /tank

今回、1TB, 2TB, 1TB, 500GB の4台のディスクでraidzを構成しましたので、一番小さいサイズの 500GB x (4 - 1) = 約1.5TB がプールの容量になります。500GBのディスクを構成に含めることによって むしろ容量が減っているのですが、なぜそうまでして4台構成にしたいのか、以下で説明します。

プールの容量を増やすには

raidzは、最初に構成するときにだけ ディスク台数を指定できます。あとからディスクを追加することはできないのです。従って ディスクを増設してプールの容量を増やしたいときは、
1. raidzを構成しているディスクそれぞれを、よりサイズの大きいものに置き換える
2. 同じプールにもう1つraidzを追加し、既存のraidzとストライピングする(RAID5+0に相当)
のいずれかの対処が必要となります。個人利用では1も2も結構な投資になるため おいそれとはできません。デメリットに記述した「物理的にドライブを追加するのが意外と難しい」は この事を指しています。
"家庭内サーバの移行"という要件で ZFSを使おうとしており、移行が済めば2TBのディスクがいくつか余る予定です。raidzを4台構成としておき、1TB/500GBのディスクを2TBと置き換えれば 2TB x (4 - 1) = 約6TB がプールの容量となります。これが一時的に500GBのディスクを借り出してでも4台構成としたかった理由です。

続く

5
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
8