はじめに
ストレージに関しては、多くのオプションと膨大な数の用語があるため、頭が混乱している可能性が高いです。 なぜ、ホスト上にディスクを接続して、その日を終えることができないのでしょうか? というのが私の不満のひとつだったのですが、あるとき、すべての技術の本質が見えてきたのです。 システム管理者やエンジニアとしてストレージがもたらす問題は、それを軽減し解決するために開発された様々な技術に感謝することになるでしょう。
この短い記事では、RAID、LVM (Logical Volume Manager)、および ZFS テクノロジーについて見ていきたいと思います。 これらの実装で何がベストなのかを調査し、また、それらの違いについて確認します。
Ext4 vs XFS :どちらを選ぶべきか
RAID
RAID とは Redundant Array of Independent Disks の略で、独立したディスクの冗長配列のことです。 基本的には、冗長性の目標を実現するために、安価で小型のディスクを多数組み合わせてアレイにするために開発されたものです。 冗長性は、プロジェクトに接続された1台の巨大なディスク・ドライブでは実現できません。 アレイが複数のディスクで構成されていても、コンピュータはそれを1台のドライブ、あるいは1つの論理的な記憶装置として「見る」のですから、非常に驚くべきことです。
ディスク ストライピング (RAID Level 0)、ディスク ミラーリング (RAID Level 1)、およびパリティ付きディスク ストライピング (RAID Level 5) などの技術を使用して、RAID は冗長性、低遅延、高帯域、およびハード ディスク クラッシュからの回復能力を最大限にすることが可能です。
大量のデータを管理するプロジェクトで RAID の導入を検討すべき主な理由は次のとおりです。
- より良い速度の達成
- 1 つの仮想ディスクを使用してストレージ容量を増加
- ディスク障害によるデータ損失を最小限に抑えることができる。
このRAIDテクノロジーには3つの種類があります。 ファームウェアRAID、ハードウェアRAID、ソフトウェアRAIDです。 ハードウェアRAIDは、ホストから独立してアレイを処理し、ホストには、RAIDアレイごとに1つのディスクを表示します。 ハードウェアRAIDは、オペレーティングシステムから透過的にRAIDタスクを処理するハードウェアRAIDコントローラカードを使用します。 一方、ソフトウェアRAIDは、カーネルのディスク(ブロックデバイス)コードに様々なRAIDレベルを実装し、高価なディスクコントローラカードやホットスワップシャーシが必要ないため、最も安価なソリューションとなります。 現代ではより高速な CPU があるため、一般にソフトウェア RAID はハードウェア RAID よりも優れています。
ソフトウェア RAID の主な特徴。 出典(access.redhat.com)
- Linux マシン間でアレイを再構築せずに移植可能
- アイドルなシステムリソースを使用したバックグラウンドでのアレイ再構築
- Hot-Unit-Unit-Unit-Unitスワップ可能なドライブのサポート
- ストリーミング SIMD サポートなどの特定の CPU 機能を利用するための自動 CPU 検出
- アレイ内のディスクの不良セクターを自動修正
- RAID データを定期的に整合性チェックしアレイの健全性を確保
- 重要イベント時に指定電子メールアドレスにアラートが送られアレイの事前監視
- Write-Unit (書き込み)
-
物理パーティションに対する LVM の利点。 ソース (access.redhat.com)
柔軟な容量
論理ボリュームを使用する場合、ディスクとパーティションを単一の論理ボリュームに集約できるため、ファイルシステムを複数のディスクにまたがって拡張することが可能です。
サイズ変更可能なストレージ プール
基盤となるディスク デバイスを再フォーマットおよび再パーティション化せずに、簡単なソフトウェア コマンドで論理ボリュームを拡張または論理ボリュームを縮小することができます。 ディスクが使用されている間に、ディスク上のデータを再配置することができます。 たとえば、ホットスワップ可能なディスクを取り外す前に空にすることができます。
便利なデバイス名
論理ストレージボリュームは、ユーザー定義およびカスタム名のグループで管理することができます。 これにより、スループットを劇的に向上させることができます。 ストライプ構成の指定は、lvcreate
ミラーリングボリューム
論理ボリュームは、データ用のミラーを構成する便利な方法を提供します。 LVM は過去にこれをネイティブにサポートしていなかったにもかかわらず、最近のバージョンではこれを提供しています。
ボリューム スナップショット
論理ボリュームを使用すると、一貫したバックアップのためにデバイス スナップショットを作成したり、実データに影響を与えずに変更の効果をテストしたりすることができます。
ZFS
ZFS はもともと Sun Microsystems が Solaris (Oracle が所有) 用に開発したものですが、Linux にも移植されています。
ZFS がこの分野で根本的に異なるのは、それが単なるファイル システム以上の存在であることです。 ZFS はファイル システムとボリューム マネージャーの役割を組み合わせ、ライブ システムに追加のストレージ デバイスを追加でき、そのプール内の既存のファイル システムすべてで新しいスペースをすぐに利用できるようにします。 LVMとRAIDが行うことを1つのパッケージで行うことができるのです。 したがって、ZFSは、RAIDグループが成長することを妨げていた以前の制限を克服することができます。 ボリュームマネージャとファイルシステムという伝統的に別々の役割を組み合わせることで、ZFSは独自の利点を提供します。
従来、ファイル システムは一度に 1 つのディスクに作成することができました。 これは、2 つのディスクがある場合、2 つのファイル システムを作成する必要があることを意味します。 RAID は、多数の物理ディスクの組み合わせによって提供されるスペースで構成される単一の論理ディスクをオペレーティング システムに提示することで、この問題を回避しました。 そして、その上にファイルシステムを配置する。 しかし、ZFSでは、ファイルシステムは基本的なディスク構造を認識しています。 この認識により、プールにディスクが追加されたときに、既存のファイルシステムを自動的に成長させることが可能になる。 さらに、ZFSでは、多くの異なるプロパティを各ファイルシステムに適用することができ、それゆえ、単一のモノリシックなファイルシステムではなく、多くの異なるファイルシステムとデータセットを作成することができる。
Features of ZFS
RAID-Z
ZFS は RAID-Z を実装しており、標準 RAID-5 のバリエーションとしてパリティの分散を良くし、電力損失の際にデータとパリティ情報が矛盾する “RAID-5 write hole” を排除しています。 このタイプは、アレイ内のパリティ デバイスの数と、プールが動作可能なまま故障するディスクの数に基づいて RAID-Z1 から RAID-Z3 と名付けられました。 インストールされたホットスペアは自動的に展開されないことに注意してください。それらは、zfs replace を使用して故障したデバイスを置き換えるために手動で構成されなければなりません。
L2ARC
これは、ZFS キャッシュシステムの 2 階層です。 プライマリの Adaptive Replacement Cache (ARC) は RAM に格納されます。 利用可能なRAMの量はしばしば制限されるので、ZFSはキャッシュvdev (単一のディスクまたはディスクのグループ)を使用することもできます。 SSD (Solid State Disk) は、その高速性と低レイテンシーにより、これらのキャッシュ デバイスとしてよく使用されます。
Mirroring
ミラーは 2 つ以上のデバイスから成り、すべてのデータがすべてのメンバー デバイスに書き込まれます。 ミラーvdevは、その最小のメンバーと同じだけのデータを保持します。 ミラー vdev は、そのメンバーの 1 つを除くすべての障害に耐え、データを失うことはありません。
SSD ハイブリッド ストレージ プール
高性能 SSD は、ZFS ストレージ プールに追加して、ハイブリッド種類のプールを作成することが可能です。 これらの高性能 SSD は、パフォーマンスを向上させるために、頻繁にアクセスされるデータを保持するキャッシュとして構成できます。
Copy on Write
コピーオンライト技術は、ディスク上のデータの一貫性をチェックするために ZFS によって使用されます。) 各ブロックのチェックサムは読み込まれる際に透過的に検証されるため、ZFSはサイレントコラプションを検出することができます。 万が一、読み込まれたデータが期待されたチェックサムと一致しない場合。 ZFS は先に進み、ミラーや RAID-Z のような設定された冗長性からデータを回復しようとします。https://www.freebsd.org/doc/handbook/zfs-term.html
結論
ZFS, RAID, および LVM についてもっと多くのことが分かっています。 この3つの技術に関する十分な基礎知識を得て、あなたのプロジェクトに適したものを選択できるようになれば幸いです。 最後までお読みいただき、ありがとうございました。
こちらもお読みください。
How to resize an ext2/3/4 and XFS root partition without LVM
How to set up LVM
How to extend root filesystem using LVM on Linux
How to extensions/increase KVM Virtual Machine (VM) disk size
Best Linux Books for Beginners & Experts
この記事のPDFを下記リンクからダウンロードすることでご支援いただけます。 ガイドをPDFでダウンロードする