論理ボリューム管理(LVM)でのシンプロビジョニングボリュームのセットアップ-パートIV


論理ボリューム管理には、スナップショットやシンプロビジョニングなどの優れた機能があります。以前(パート– III)で、論理ボリュームのスナップショットを作成する方法を見てきました。この記事では、LVMでシンプロビジョニングボリュームをセットアップする方法を説明します。

シンプロビジョニングは、シンプール内に仮想ディスクを作成するためにlvmで使用されます。サーバーに 15GB のストレージ容量があると仮定します。私はすでにそれぞれ5GBのストレージを持つ2つのクライアントを持っています。あなたは3番目のクライアントであり、5GBのストレージを要求しました。当時、私たちは5GB(シックボリューム)全体を提供するために使用していましたが、その5GBストレージから2GBを使用でき、3GBは無料で、後でいっぱいにすることができます。

ただし、シンプロビジョニングで行うことは、ラージボリュームグループの1つ内にシンプールを定義し、そのシンプール内にシンボリュームを定義するために使用することです。したがって、書き込んだファイルはすべて保存され、ストレージは5GBとして表示されます。ただし、5GB全体ではディスク全体が割り当てられません。同じプロセスが他のクライアントに対しても実行されます。私が言ったように、2つのクライアントがあり、あなたは私の3番目のクライアントです。

では、クライアントに割り当てた合計GBの量を想定しましょう。全部で15GBはすでに完成しています。誰かが私のところに来て5GBを要求した場合、私は与えることができますか?答えは「はい」です。ここでは、シンプロビジョニングでは、15 GBを割り当てていても、4番目のクライアントに5GBを割り当てることができます。

警告:15GBから、15GBを超えるプロビジョニングを行う場合は、オーバープロビジョニングと呼ばれます。

私はあなたに5GBを提供しましたが、あなたは2GBしか使用できず、他の3GBは無料になります。シックプロビジョニングでは、最初はスペース全体が割り当てられるため、これを行うことはできません。

シンプロビジョニングでは、5 GBを定義している場合、ボリュームの定義中にディスクスペース全体が割り当てられることはなく、データの書き込みに応じて5GBまで増加します。あなたと同じように、他のクライアントもフルボリュームを使用しないため、新しいクライアントに5GBを追加する機会があります。これはオーバープロビジョニングと呼ばれます。

ただし、ボリュームの増加をすべて監視する必要があります。そうしないと、災害が発生します。 4つのクライアントすべてがデータをディスクに正しく書き込んでいない場合、オーバープロビジョニングが実行されている間、15 GBがいっぱいになり、オーバーフローしてボリュームがドロップされるため、問題が発生する可能性があります。

  1. Create Disk Storage with LVM in Linux – PART 1
  2. How to Extend/Reduce LVM’s in Linux – Part II
  3. How to Create/Restore Snapshot of Logical Volume in LVM – Part III
  1. Operating System – CentOS 6.5 with LVM Installation
  2. Server IP – 192.168.0.200

ステップ1:シンプールとボリュームを設定する

シンプールとシンボリュームの設定方法を実際にやってみましょう。まず、大きなサイズのボリュームグループが必要です。ここでは、デモンストレーション用に 15GB のボリュームグループを作成しています。次に、以下のコマンドを使用してボリュームグループを一覧表示します。

# vgcreate -s 32M vg_thin /dev/sdb1

次に、シンプールとボリュームを作成する前に、論理ボリュームの可用性のサイズを確認します。

# vgs
# lvs

ファイルシステムのデフォルトの論理ボリュームのみがあり、上記のlvs出力にスワップが存在することがわかります。

ボリュームグループ(vg_thin)に15GBのシンプールを作成するには、次のコマンドを使用します。

# lvcreate -L 15G --thinpool tp_tecmint_pool vg_thin
  1. -L – Size of volume group
  2. –thinpool – To o create a thinpool
  3. tp_tecmint_pool– Thin pool name
  4. vg_thin – Volume group name were we need to create the pool

詳細を取得するには、コマンド「lvdisplay」を使用できます。

# lvdisplay vg_thin/tp_tecmint_pool

ここでは、このシンプールに仮想シンボリュームを作成していません。この画像では、 0.00%を示す割り当て済みプールデータを確認できます。

これで、オプション-V(仮想)を指定した「lvcreate」コマンドを使用して、シンプール内にシンボリュームを定義できます。

# lvcreate -V 5G --thin -n thin_vol_client1 vg_thin/tp_tecmint_pool

vg_thin ボリュームグループの tp_tecmint_pool 内に thin_vol_client1 という名前のシン仮想ボリュームを作成しました。次に、以下のコマンドを使用して論理ボリュームを一覧表示します。

# lvs 

ちょうど今、上記の薄いボリュームを作成しました。そのため、 0.00%M を示すデータはありません。

了解しました。他の2つのクライアント用に 2 以上のシンボリュームを作成します。ここで、プール( tp_tecmint_pool )の下に作成された 3 のシンボリュームがあることがわかります。したがって、この時点から、15GBのプールをすべて使用したことがわかりました。

次に、マウントポイントを作成し、これら3つのシンボリュームをマウントし、以下のコマンドを使用してその中のいくつかのファイルをコピーします。

# mkdir -p /mnt/client1 /mnt/client2 /mnt/client3

作成したディレクトリを一覧表示します。

# ls -l /mnt/

「mkfs」コマンドを使用して、これらの作成されたシンボリュームのファイルシステムを作成します。

# mkfs.ext4 /dev/vg_thin/thin_vol_client1 && mkfs.ext4 /dev/vg_thin/thin_vol_client2 && mkfs.ext4 /dev/vg_thin/thin_vol_client3

「mount」コマンドを使用して、作成したマウントポイントに3つのクライアントボリュームすべてをマウントします。

# mount /dev/vg_thin/thin_vol_client1 /mnt/client1/ && mount /dev/vg_thin/thin_vol_client2 /mnt/client2/ && mount /dev/vg_thin/thin_vol_client3 /mnt/client3/

「df」コマンドを使用してマウントポイントを一覧表示します。

# df -h

ここでは、3つのクライアントボリュームすべてがマウントされていることがわかります。したがって、すべてのクライアントボリュームで使用されているデータは 3%のみです。それでは、デスクトップから3つのマウントポイントすべてにファイルを追加して、スペースを埋めましょう。

次に、マウントポイントを一覧表示し、すべてのシンボリュームで使用されているスペースを確認し、シンプールを一覧表示して、プールで使用されているサイズを確認します。

# df -h
# lvdisplay vg_thin/tp_tecmint_pool

上記のコマンドは、3つのマウントパイントとそのサイズをパーセンテージで示しています。

13% of datas used out of 5GB for client1
29% of datas used out of 5GB for client2
49% of datas used out of 5GB for client3

シンプールを調べていると、データの 30%だけが完全に書き込まれていることがわかります。これは、上記の3つのクライアント仮想ボリュームの合計です。

ここで、 4番目のクライアントが私のところに来て、5GBのストレージスペースを要求しました。あげてもいいですか?私はすでに3人のクライアントに15GBのプールを与えていたからです。別のクライアントにさらに5GBを与えることは可能ですか?はい、与えることは可能です。これは、オーバープロビジョニングを使用する場合です。つまり、私が持っている以上のスペースを提供します。

4番目のクライアント用に5GBを作成し、サイズを確認します。

# lvcreate -V 5G --thin -n thin_vol_client4 vg_thin/tp_tecmint_pool
# lvs

プールには15GBのサイズしかありませんが、最大20GBのシンプール内に4つのボリュームを作成しました。 4つのクライアントすべてがペースを埋めるためにボリュームにデータを書き込み始めた場合、その時点で、問題がない場合でも、重大な状況に直面します。

これで、 thin_vol_client4 でファイルシステムを作成し、/mnt/client4 の下にマウントして、その中にいくつかのファイルをコピーしました。

# lvs

上の写真では、新しく作成されたクライアント4で使用された合計サイズが最大 89.34%であり、シンプールのサイズが 59.19%であることがわかります。これらすべてのユーザーがボリュームにひどく書き込んでいない場合は、オーバーフローが発生しません。ドロップしてください。オーバーフローを回避するには、シンプールのサイズを拡張する必要があります。

重要:シンプールは単なる論理ボリュームであるため、シンプールのサイズを拡張する必要がある場合は、論理ボリュームの拡張に使用したのと同じコマンドを使用できますが、シンのサイズを縮小することはできません。 -プール。

# lvextend

ここでは、論理シンプール( tp_tecmint_pool )を拡張する方法を確認できます。

# lvextend -L +15G /dev/vg_thin/tp_tecmint_pool

次に、シンプールのサイズをリストします。

# lvs

以前の tp_tecmint_pool のサイズは15GBで、4つのシンボリュームはプロビジョニングを20GB超えていました。現在は30GBに拡張されているため、オーバープロビジョニングが正規化され、シンボリュームにオーバーフローやドロップが発生しません。このようにして、プールにさらに薄いボリュームを追加できます。

ここでは、大きなサイズのボリュームグループを使用してシンプールを作成し、プールのオーバープロビジョニングと拡張を使用してシンプール内にシンボリュームを作成する方法を説明しました。次の記事では、lvmストライピングを設定する方法を説明します。

全著作権所有。 © Linux-Console.net • 2019-2022