GlusterFS(GFS)分散ファイルシステムの理論

序文

1つ:GlusterFS(GFS)理論

1.1:GlusterFSとは何ですか?

オープンソースの分散ファイルシステムであるGluster File Systemは、スケールストレージのコアであり、数千のクライアントを処理できます。従来のソリューションでは、Glusterfsは物理リソース、仮想リソース、クラウドリソースを柔軟に組み合わせて、高可用性とエンタープライズを反映できます。ハイパフォーマンスストレージ
ストレージサーバー(Brick Server)、クライアント、NFS / Sambaストレージゲートウェイで構成されます
メタデータフリーサーバー
GlusterFSは、
スケーラビリティとハイパフォーマンス
ハイアベイラビリティ
グローバルユニファイドネームスペース
柔軟なボリューム管理
標準プロトコルに基づいています
ここに画像の説明を挿入

一般的な用語

ブリック:GFSのストレージユニット。信頼できるストレージプール内のサーバーのエクスポートディレクトリを介します。これは、「SERVER :EXPORT」などのホスト名とディレクトリ名で識別できます。
ボリューム:ボリューム
FUSE:カーネルファイルシステム、ファイルシステムユーザースペースはロード可能なカーネルモジュールであり、非特権ユーザーがカーネルコードを変更せずに独自のファイルシステムを作成できます。 。ユーザースペースでファイルシステムコードを実行することにより、FUSEコードはカーネルとブリッジされます。
VFS:仮想ファイルシステム
Glusterd:Gluster管理デーモン。信頼できるストレージプール内のすべてのサーバーで実行します。
GFSの構造
モジュラースタックアーキテクチャモジュラースタックアーキテクチャ
モジュール
の組み合わせにより、複雑な機能を実現
ここに画像の説明を挿入

エラスティックHASHアルゴリズム

HASHアルゴリズムを介して32ビット整数を取得します。
それをN個の連続するサブスペースに分割します。各スペースはBrickに対応し
ます。柔軟なHASHアルゴリズムの利点。
データが各Brickに均等に分散されていることを確認してください。
メタデータサーバーへの依存を解決し、問題を解決します。単一障害点とアクセスのボトルネック
ここに画像の説明を挿入
ここに画像の説明を挿入

1.2:GlusterFSの動作原理は何ですか?

1.クライアントまたはアプリケーションがGlusterFSのマウントポイントを介してデータにアクセスする
2. Linuxシステムカーネルがリクエストを受信し、VFS APIを介してそれを処理する
3. VFSがFUSEカーネルファイルシステムにデータを送信し、fuseファイルシステムが/ devを介してデータを渡す/ fuseデバイスファイルはGlusterFSクライアントに送信されます
4. GlusterFSクライアントがデータを受信した後、クライアントは構成ファイルの構成に従ってデータを処理します
5.データはネットワーク経由でリモートGlusterFSサーバーに転送され、データはサーバーに書き込まれますストレージデバイス
ここに画像の説明を挿入

1.3:GlusterFSのボリュームタイプは何ですか?

分散ボリューム
ストライプボリューム
複製ボリューム
分散ストライプボリューム
分散複製ボリューム
ストライプ複製ボリューム
分散ストライプ複製ボリューム
分散ボリューム
ファイルブロック処理なし

拡張ファイル属性を通じてHASH値を保存する

サポートされている基本的なファイルシステムは、ext3、ext4、ZFS、XFSなどです。

分散ボリューム特性

ファイルは異なるサーバーに分散されており、冗長性はありません。
ボリュームのサイズを拡張する方が簡単で安価です。
単一障害点はデータ損失の原因になります。
基礎となるデータ保護に依存してください。
コマンドの作成

gluster volume create dis-volume server1:/ dir1 server2:/ dir2

ストライプロール

ファイルをオフセットに従ってNブロック(Nストリップノード)に分割し、ポーリングされたブロックを各ブリックサーバーノードに保存します。

大きなファイルを保存する場合、パフォーマンスは特に優れています

Raid0と同様の冗長性なし

ここに画像の説明を挿入
特徴

データは小さい部分に分割され、ブロックサーバーグループ内の異なるストリップに分散されます。
分散により負荷が軽減され、小さいファイルによりアクセス速度が向上します。
データの冗長性はありません。
コマンドの作成

gluster volume create stripe-volume stripe 2 transport tcp server1:/ dir1 server2:/ dir2

ボリュームをコピー

同じファイルの1つ以上のコピーを保持する

コピーモードではコピーを保存する必要があるため、ディスク使用率が低くなります。

複数のノードのストレージスペースに一貫性がなく、最下位ノードの合計容量がボリューム
ここに画像の説明を挿入
特性であるため、キャスク容量に応じて効果が発生します

ボリューム内のすべてのサーバーは完全なコピーを保存します
ボリュームのコピー数は、お客様がボリュームを作成するときに決定できます。
少なくとも2台以上のブロックサーバーに
冗長性があります。
作成コマンド

gluster volume create rep-volume replica 2 transport tcp server1:/ dir1 server2:/ dir2

分散ストライプボリューム

分散ボリュームとストライプボリュームの機能を考慮する

主に大きなファイルのアクセス処理に使用されます

少なくとも4台のサーバーが必要です

作成コマンド

gluster volume create rep-volume replica 2 transport tcp server1:/ dir1 server2:/ dir2
ここに画像の説明を挿入

分散レプリケーションボリューム

分散ボリュームと複製ボリュームの機能を考慮に入れる

冗長性が必要な場合に使用されます

作成コマンド

gluster volume create rep-volume replica 2 transport tcp server1:/ dir1 server2:/ dir2
ここに画像の説明を挿入

第二に、分散ファイルシステムの理論的基礎

1.1分散ファイルシステムの登場

コンピューターはファイルシステムを使用してデータを管理および格納します。ただし、データ情報が爆発的に増加する時代では、ユーザーが取得できるデータは指数関数的に増加しています。コンピューターファイルシステムのストレージ容量を拡張するためにハードドライブの数を増やすだけでは、現在の要件を満たすことができなくなりました。要求する。

分散ファイルシステムは、データの保存と管理の問題を効果的に解決できます。特定の場所に固定されたファイルシステムは、任意の数の場所/複数のファイルシステムに拡張でき、多くのノードがファイルシステムネットワークを形成します。各ノードは、ノード間の通信とデータ送信のためのネットワークを介して、異なる場所に分散できます。分散ファイルシステムを使用する場合、データがどのノードに格納されているか、どのノードからデータが取得されているかを気にする必要はありませんが、ローカルファイルシステムのようにファイルシステムにデータを管理および格納するだけで済みます。

1.2代表的なNFS

NFS(ネットワークファイルシステム)は、ネットワーク内のコンピューターがTCP / IPネットワークを介してリソースを共有できるようにするネットワークファイルシステムです。NFSアプリケーションでは、ローカルNFSクライアントアプリケーションは、ローカルファイルにアクセスするのと同じように、リモートNFSサーバーにあるファイルを透過的に読み書きできます。NFSの利点は次のとおりです。

1.2代表的なNFS
NFS(Network File System)はネットワークファイルシステムであり、ネットワーク内のコンピューターがTCP / IPネットワークを介してリソースを共有できるようにします。NFSアプリケーションでは、ローカルNFSクライアントアプリケーションは、ローカルファイルにアクセスするのと同じように、リモートNFSサーバーにあるファイルを透過的に読み書きできます。NFSの利点は次のとおりです。

(1)使用済みディスク容量を節約します
。クライアントが頻繁に使用するデータを単一のマシンに保存し、NFSを使用して公開できます。これにより、ネットワーク内のすべてのコンピュータに個別に保存することなくアクセスできます。

(2)ハードウェアリソースの節約
NFSは、フロッピードライブ、CDROM、ZIPなどのストレージデバイスも共有できるため、ネットワーク全体のリムーバブルデバイスの数を減らすことができます。

(3)ユーザーホームディレクトリの設定
管理者などの特別なユーザーは、管理上のニーズから、ネットワーク内のすべてのコンピューターにログインすることがよくあります。クライアントごとにユーザーのホームディレクトリを保存するのは面倒です。データの一貫性は保証できません。実際、NFSサービスを設定し、クライアント上のユーザーのホームディレクトリの場所を指定して自動的にマウントすると、ユーザーのホームディレクトリ内のファイルを任意のコンピューターで使用できます。

1.3直面する問題

ストレージ容量が不十分で、より大きなストレージ容量が必要です
。NFSを使用してストレージを直接マウントすることは危険であり、単一障害点があります。
一部のシナリオでは需要を満たせず、多数のディスクIOアクセスがボトルネックになります

1.4一般的な用語

ここに画像の説明を挿入

1.5 GlusterFSのアプリケーションシナリオ

(1.)非構造化データストレージ
(2.)アーカイブ、障害復旧
(3.)仮想マシンストレージ
(4.)クラウドストレージ
(5.)コンテンツクラウド、ビッグデータ
(6.)構造化および半構造化データ

理論的および実用的な分析によると、GlusterFSは現在、主に大きなファイルのストレージシナリオに適しています。小さなファイル、特に大容量の小さなファイル(1M未満)の場合、ストレージ効率とアクセスパフォーマンスは良くありません。大規模な小さなファイルのLOSF問題は、業界や学界で認識されている問題です。一般的な分散ファイルシステムとして、GlusterFSには小さなファイル(1M未満)に対する追加の最適化対策がなく、パフォーマンスの低下は理解できます。

メディア
ドキュメント、画像、オーディオ、ビデオ

共有ストレージ
クラウドストレージ、仮想化ストレージ、HPC(ハイパフォーマンスコンピューティング)

ビッグデータ
ログファイル、RFID(無線周波数識別)データ

3、GlusterFSボリュームタイプ

高パフォーマンスと高可用性のためのさまざまなアプリケーションのニーズを満たすために、GlusterFSは7種類のボリュームをサポートしています。つまり、ボリュームの分散、ストライプボリューム、レプリカボリューム、ストライプボリュームの分散、レプリカボリュームの分散、ストライプレプリカボリューム、およびストライプレプリカボリュームの分散です。実際、GlusterFSボリュームタイプが実際に3つのベーシックボリュームと4つの複合ボリュームに分割できることを理解するのは難しくありません。各ボリュームタイプには、独自の特性と適用可能なシナリオがあります。

基本容量:

3.1ボリュームを配布する

ハッシュアルゴリズムに基づいてすべてのブリックサーバーにファイルを配布すると、ディスクスペースが拡張されるだけで、フォールトトレランスがなくなります。分散ボリュームはローカルファイルシステムを使用しているため、アクセス効率は向上しません。逆に、ネットワーク通信により使用効率が低下します。また、ローカルストレージの容量に制限があり、非常に大きなファイルのサポートが困難になります。

3.2ストライプボリューム

RAID0と同様に、ファイルはデータブロックに分割され、ラウンドロビン方式でブリックサーバーに配布されます。同時実行の粒度はデータブロックです。非常に大きなファイルをサポートし、大きなファイルの読み取りと書き込みのパフォーマンスが高くなります。

3.3レプリカボリューム

フォールトトレランス、書き込みパフォーマンスの低下、読み取りパフォーマンスの向上により、ファイルを複数のブリックに同期してファイルレベルのRAID1でコピーします。複製モードはAFR(Auto File Replication)とも呼ばれ、RAID1と同じです。つまり、同じファイルが複数のミラーリングされたストレージノードに保存されます。複製された各子ノードは同じディレクトリ構造とファイルを持ち、レプリカボリュームもコンテナに保存されますより尊敬されているものの1つ。

3.4ストライプボリュームの配布

ブリックサーバーの数はストライプの数の倍数であり、分散ボリュームとストライプボリュームの両方の特性を備えています。分散ストライプボリュームの場合、ボリュームのブリックに含まれるストレージサーバーの数は、分散機能とストライプ機能の両方を考慮して、ストライプの倍数(> = 2回)である必要があります。各ファイルは4つの共有サーバーに分散され、通常、大きなファイルアクセス処理に使用されます。分散ストライプボリュームを作成するには、少なくとも4つのサーバーが必要です。

3.5レプリカボリュームを配布する

ブリックサーバーの数はミラーの数の倍数であり、分散ボリュームとレプリカボリュームの両方の特性を持ち、2つ以上のノード間でデータを複製できます。分散複製ボリュームの場合、ボリュームのブリックに含まれるストレージサーバーの数は、分散機能と複製機能の両方を考慮して、レプリカの倍数(> = 2回)である必要があります。

3.6ストライプレプリカボリューム

RAID 10と同様に、ストライプボリュームと複製ボリュームの特性があります。

3.7ストライプレプリカボリュームの分散:分散ストライプレプリカボリューム

3つの基本ボリュームの複合ボリュームで、通常Map Reduceのようなアプリケーションで使用されます。

4、GlusterFSの一般的に使用されるコマンド

GlusterFSクライアントには、ノードとボリュームを操作するための豊富なコマンドが用意されています表2に、一般的に使用されるいくつかのコマンドを示します。コンテナとドッキングするプロセスでは、ボリュームの作成、ボリュームの削除、ボリュームクォータの設定を行う必要があります。HTTPリクエストを介したボリュームの操作を容易にするには、これらの後続の関数もREST APIベースである必要があります。

4.1 GlusterFSクライアントの一般的なコマンド

glusterピアプローブ///ノード
glusterピアの追加///ノード
glusterボリュームの削除/// ボリュームglusterボリュームの作成///ボリューム
glusterボリュームの開始///ボリューム
glusterボリュームの停止///ボリューム
glusterボリュームの削除///ボリューム
glusterの削除volume quota enable ///ボリュームクォータ
glusterをオンにするボリュームクォータenable ///ボリュームクォータ
glusterをオフにするボリュームクォータlimit-usage ///ボリュームクォータ
gluster --version ///バージョン
表示するコマンドの最後にforceを追加して強制する

おすすめ

転載: blog.csdn.net/BIGmustang/article/details/108573000