サーバーのストレージ容量は、何十年もの間、ディスクドライブのサイズとパーティション構成によって管理されてきました。明らかに、これらの戦略はうまく機能し、信頼できます。ただし、ローカルサーバーのストレージ管理を再考することには多くの利点があります。この記事では、標準のストレージ管理とパーティショニングを論理ボリュームマネージャー(LVM)と比較します。また、各アプローチのいくつかの基本的なコマンドも示しています。
従来のストレージ管理
従来のストレージ管理というフレーズを使用します 基本的なハードディスクドライブからストレージ容量を分割、フォーマット、およびマウントするプロセスを説明します。この標準のパーティショニングを、Logical Volume Manager(LVM)と呼ばれる代替方法と対比します。
ストレージスペースは通常、個々のハードディスクドライブの最大容量に基づいて管理されます。その結果、システム管理者がストレージについて考えるとき、各ドライブに基づいてそうします。たとえば、サーバーにそれぞれ1 TBのハードディスクドライブが3つある場合、システム管理者はストレージを文字通り考慮します。使用する1TBドライブが3つあります 。
従来のストレージ管理を簡単に確認してみましょう。シナリオの例を次に示します。
1。新しいハードディスクドライブをインストールします
1テラバイト(1 TB)のハードディスクドライブを購入してから、サーバーに物理的にインストールします。
2。ドライブをパーティション分割する
fdisk
を使用する またはgparted
1つ以上のパーティションを作成します。パーティションは合計1TBを超えるディスク容量を消費できないことに注意することが重要です。
例fdisk
コマンド:
# fdisk /dev/sdb
fdisk
の構文については説明しません この記事では、1TBのディスク全体を消費する単一のパーティションを作成したと仮定します。パーティションは/dev/sdb1
です 。
/proc/partitions
を使用して容量を表示します およびlsblk
コンテンツ:
# cat /proc/partitions
# lsblk
3。ファイルシステムを作成する
mkfs
を使用して、新しいパーティションにファイルシステムを作成します 指図。 ext4を使用できます またはRHELのデフォルトのXFS ファイルシステム。
# mkfs.ext4 /dev/sdb1
XFS これはRedHatのデフォルトであり、LVMと組み合わせると ext4ほど柔軟ではない可能性があります。 。 XFS ファイルシステムは簡単に拡張できますが、縮小することはできません。そのアイデアについては、記事の終わりに向けてさらに詳しく説明します。
4。マウントポイントを作成する
このプロセスの残りの部分は比較的標準的です。まず、マウントポイントとして機能するディレクトリを作成します。次に、パーティションをマウントポイントに手動でマウントします。
# mkdir /newstorage
# mount /dev/sdb1 /newstorage
5。ストレージ容量を確認します
du
を使用する 記憶域がアクセス可能であり、予想されるサイズであることを確認するコマンド。
# du -h /newstorage
注 :-h
オプションは、du
の出力を表示します GBやTBなど、人間が理解しやすい容量の用語で。
6。起動時にマウントするスペースを構成する
/etc/fstab
を編集します 起動時にファイルシステムをマウントするファイル。 /etc/fstab
でリマインダーが必要な場合 、TylerCarriganの記事「EnableSysadmin」のLinux/ etc/fstabファイルの概要を確認してください。
論理ボリュームマネージャー(LVM)
従来のストレージ容量は、個々のディスク容量に基づいています。 LVMは異なる概念を使用します。ストレージスペースは、使用可能なドライブの容量を組み合わせたりプールしたりすることで管理されます。従来のストレージでは、3つの1TBディスクが個別に処理されます。 LVMの場合、これらの同じ3つのディスクは3TBの集約ストレージ容量と見なされます。これは、ストレージディスクを物理ボリュームとして指定することで実現されます。 (PV)、またはLVMで使用可能なストレージ容量。次に、PVが1つ以上のボリュームグループに追加されます。 (VG)。 VGは1つ以上の論理ボリュームに刻まれています (LV)、これは従来のパーティションとして扱われます。
ソース :RedHatLVMアーキテクチャの概要
1。新しいハードディスクドライブをインストールします
明らかに、使用可能なストレージディスクが必要です。上で見たように、サーバーにドライブを物理的にインストールする必要があります。
2。物理的なボリュームを指定する
物理ボリューム(PV)は、潜在的なストレージ容量としてLVMで使用できるディスクまたはパーティションです。それらには、各PVを説明する識別子とメタデータがあります。 RAIDとは対照的に、PVは同じサイズである必要はなく、同じ速度のディスク上にある必要もありません。ドライブタイプを組み合わせてPVを作成できます。 LVMを実装するには、最初にドライブを物理ボリュームとして指定します。
PVを作成するコマンド:
# pvcreate /dev/sdb1
# pvcreate /dev/sdc
これらの2つのコマンド例は少し異なります。最初のコマンドは、パーティション 1を指定します ストレージディスク上b PVとして。 2番目のコマンドは、ストレージディスク cの合計容量を設定します PVとして。
PV容量と追加情報を表示する:
# pvdisplay
このコマンドは、サーバーに構成されているすべての物理ボリュームを表示します。
3。ボリュームグループの管理
1つ以上のディスクが物理ボリュームとしてLVMで使用可能になると、ストレージ容量がボリュームグループ(VG)に結合されます。サーバー上に複数のVGが存在する場合があり、ディスクは複数のVGのメンバーである場合があります(ただし、PV自体は1つのVGのメンバーのみである場合があります)。
vgcreate
を使用します 新しいボリュームグループを作成するコマンド。 VGには少なくとも1つのメンバーが必要です。コマンド構文は次のとおりです。
vgcreate name-of-new-VG PV-members
次のコマンドを使用して、 vg00という名前のボリュームグループを作成します /dev/sdb1
を使用 および/dev/sdc
メンバーとして:
# vgcreate vg00 /dev/sdb1 /dev/sdc
vg00という名前のVGの情報を表示します :
# vgdisplay vg00
4。論理ボリュームの管理
VGは、1つ以上の論理ボリューム(LV)に分割できます。これらの論理ボリュームは、従来のパーティションであるかのように使用されます。 VGには合計容量があり、その容量の一部が論理ボリュームに割り当てられます。
lvcreate
コマンドはVGからストレージ容量を切り分けます。知っておくべきいくつかのオプションがあります。
オプション | 説明 |
-n | LVの名前-例sales-lv |
-L | GまたはTのサイズ-例: 10G |
-q | 静かで、コマンド出力を抑制します |
-v | 追加の詳細を提供する詳細モード |
lvcreate
の構文 コマンドは次のとおりです:
lvcreate -L size -n lvname vgname
10を作成するコマンドは次のとおりです sales-lvという名前のGB論理ボリューム vg00から刻まれた ボリュームグループ:
# lvcreate -L 10G -n sales-lv vg00
ご存知のとおり、 vg00を作成しました 2つの物理ボリュームからのボリュームグループ、/dev/sdb1
および/dev/sdc
。したがって、要約すると、/dev/sdb1
の容量を組み合わせました。 および/dev/sdc
vg00に 、次に sales-lvという名前の論理ボリュームを作成しました その集約されたストレージスペースから。
lvdisplay
を使用できます コマンドを使用して、論理ボリュームの構成を確認します。
# lvdisplay /dev/vg00/sales-lv
5。ファイルシステムを適用し、マウントポイントを設定します
LVが作成されると、他のパーティションと同様に管理されます。上記の標準のパーティション管理セクションで構成したのと同じように、ファイルシステムとマウントポイントが必要です。
-
mkfs.ex4
を実行します LVのコマンド。 mkdir.
-
mount
を使用してボリュームを手動でマウントします コマンドを実行するか、/etc/fstab
を編集します システムの起動時にボリュームを自動的にマウントするファイル。 -
df -h
を使用します ストレージ容量が使用可能であることを確認するコマンド。
[次のこともお勧めします:LogicalVolumeManagerの概要]
スケーリング容量
この段階では、LVMの構成を見てきましたが、実際にはまだ多くのメリットを確認できていません。 LVM構成の利点の1つは、ストレージ容量を簡単かつ迅速に拡張できることです。通常、もちろん、システム管理者はスケールアップ(容量を増やす)する必要があります。 LVMを使用してストレージ容量を縮小することもできることに注意してください。つまり、ストレージ容量が過剰に割り当てられている場合(必要以上に多くのストレージを構成した場合)、ストレージを縮小できます。このセクションでは、両方のシナリオについて説明します。
容量を増やすことから始めましょう。
容量を増やす
論理ボリュームにストレージ容量を追加できます。これは、ユーザーが予想よりも多くのスペースを消費する場合に役立ちます。プロセスはかなり論理的です:
- ディスクを追加してPVとして構成します。
- VGに追加します。
- 容量をLVに追加してから、ファイルシステムを拡張します。
1。ストレージディスクをインストールしてから、PVとして構成します
容量を増やすには、上記の手順に従って、新しいディスクをインストールし、PVとして構成します。空き容量のあるディスクがすでにある場合は、それも使用できます。
PVを作成するコマンドのリマインダーは次のとおりです。
# pvcreate /dev/sdb2
この場合、パーティション 2を指定しています ディスク上/dev/sdb
新しいPVとして。
2。 VGにスペースを追加する
新しい容量がLVMに指定されたら、それをVGに追加して、プールのサイズを増やすことができます。
次のコマンドを実行して、既存のVGに新しいPVを追加します。
# vgextend vg00 /dev/sdb2
これで、ストレージプールが大きくなりました。次のステップは、増加した容量を特定の論理ボリュームに追加することです。プールに追加したPVストレージスペースの一部またはすべてを既存のLVに割り当てることができます。
3。 LVにスペースを追加する
次に、拡張する必要のあるLVに新しいVGストレージスペースの一部またはすべてを追加します。
lvextend
を実行します LVを指定されたサイズに拡張するコマンド:
# lvextend -L3T /dev/vg00/sales-lv
lvextend
を実行します 既存のサイズに1GBのスペースを追加するコマンド:
# lvextend -L+1G /dev/vg00/sales-lv
4。ファイルシステムを拡張して、ストレージ容量を利用できるようにします
最後に、ファイルシステムを拡張します。両方のext4 およびXFS この機能をサポートしているので、どちらのファイルシステムでも問題ありません。
umount
を使用してファイルシステムをアンマウントします コマンド:
# umount /newstorage
ext4の基本的なコマンドは次のとおりです :
# resize2fs /dev/vg00/sales-lv 3T
容量を減らす
ストレージスペースの削減はあまり一般的ではありませんが、注目に値します。このプロセスは、ストレージの拡張とは逆の順序で行われます。
注 : XFS ファイルシステムは実際には縮小されていません。代わりに、コンテンツをバックアップしてから、新しくサイズ変更されたLVに復元します。 xfsdump
を使用できます これを達成するためのユーティリティ。 ext4 ファイルシステムを減らすことができます。これが、このセクションで焦点を当てているファイルシステムです。上記でファイルシステムを拡張して見たように、ボリュームをアンマウントする必要があります。正確なコマンドは、LV名によって異なります。
# umount /dev/vg00/sales-lv
1。ファイルシステムを縮小する
次に、resize2fs
を使用します ファイルシステムのサイズを縮小するコマンド。 fsck
を実行することをお勧めします ext4 それらを縮小する前にファイルシステム。また、予期しない事態が発生した場合に備えて、LVのデータをバックアップすることをお勧めします。
これは、 ext4を縮小する例です。 ファイルシステム:
# resize2fs /dev/vg00/sales-lv 3T
注 :ファイルシステムを、保存されているデータの量よりも小さいサイズに縮小することはできません。
2。 LVを下げる
lvreduce
を使用します LVに割り当てられたストレージスペースを縮小するコマンド。これにより、潜在的なストレージ容量がVGに返されます。
# lvreduce -L 2T vg00/sales-lv
上記のコマンドがsales-lv
を設定することを理解することが重要です。 2T 。 しない 既存のLVから2テラバイトを削除します。 LVを2テラバイトで構成します。 lvreduce
に伝えることができます 非常によく似たコマンドを使用して、既存の容量からスペースを差し引くには:
# lvreduce -L -2T vg00/sales-lv
この場合、-
を追加しました (ダッシュ)2T
の前 サイズ、既存のsales-lv
からそのスペースの量を差し引いてほしいことを示します 容量。 2つのコマンドの違いは小さいですが、重要です。
これで、別のLVで使用するためにVGに戻された容量があります。前に説明したextendコマンドを使用して、この容量を再割り当てできます。 VGを縮小することもできます。
柔軟性
LVMを使用して容量を簡単に再割り当てすることもできます。あるVGの容量を減らして、別のVGに追加することができます。これは、ファイルシステムを縮小してから、VGからLVを削除することで実現されます。 10TBの容量のサーバーがあるとします。上記のプロセスを使用して、それぞれ5TBのLVを2つ作成しました。数週間後、代わりに7TBと3TBのLVを作成する必要があることがわかります。ボリュームグループの1つから2TBの容量を削除してから、その容量を他のVGに追加できます。これは、従来のパーティショニングが提供するよりもはるかに柔軟性があります。
LVMは、RAID構成、ミラーリング、およびその他の高度な設定もサポートしているため、LVMはさらに魅力的なソリューションになります。 Tyler Carriganの記事「LVMを使用したLinuxでの論理ボリュームの作成」には、論理ボリュームのストライピングとミラーリングに関する優れた情報がいくつかあります。
[システム管理者のスキルをテストしたいですか?今日、スキル評価を受けてください。 ]
まとめ
論理ボリュームマネージャーは、ストレージのニーズに柔軟性を追加するための優れた方法であり、従来のドライブ管理よりもそれほど複雑ではありません。 Red Hatのサイトには優れたドキュメントがあり、公式のトレーニングコースでも非常に効果的にカバーされています。
LVMについて私が評価していることの1つは、論理コマンド構造です。管理コマンドの大部分は関連しているため、比較的覚えやすいです。次の表のポイントはではありません コマンドを要約しますが、コマンドはすべて非常に類似しているため、ユーザーフレンドリーであることに注意してください。
コマンド | 説明 |
pvcreate | 物理ボリュームを作成する |
pvdisplay | 物理ボリューム情報を表示する |
pvs | 物理ボリューム情報を表示する |
pvremove | 物理ボリュームを削除する |
vgcreate | ボリュームグループを作成する |
vgdisplay | ボリュームグループ情報を表示する |
vgs | ボリュームグループ情報を表示する |
vgremove | ボリュームグループを削除する |
vgextend / vgreduce | ボリュームグループを拡張または削減 |
lvcreate | 論理ボリュームを作成する |
lvdisplay | 論理ボリューム情報を表示する |
lvs | 論理ボリューム情報を表示する |
lvremove | 論理ボリュームを削除する |
lvextend / lvextend | 論理ボリュームを拡張または削減 |
次にローカルファイルサーバーを立ち上げるときは、従来のストレージ管理手法の代わりにLVMを使用することを検討してください。サーバーのストレージ容量を調整する必要があるため、数か月または数年後に感謝するかもしれません。