論理ボリュームマネージャー(LVM)は、ソフトウェアベースのRAIDのようなシステムであり、ストレージの「プール」を作成し、必要に応じてそれらのプールにハードドライブスペースを追加できます。特にデータセンターやストレージ要件が時間の経過とともに変化する場所では、これを使用する理由はたくさんあります。ただし、多くのLinuxディストリビューションでは、デスクトップインストールにデフォルトで使用されます。これは、ユーザーが柔軟性を便利に感じ、LVM構造によって簡素化される暗号化機能が組み込まれているためです。
ただし、データのレスキューまたは移行の目的でLive CDから起動するときにLVMボリュームを表示することに慣れていない場合は、マウントが原因で、LVMが混乱する可能性があります。 コマンドはLVMボリュームをマウントできません。そのためには、LVMツールをインストールする必要があります。まだインストールされていない場合は、ディストリビューションでLVMutilsを使用できる可能性が高くなります。
このチュートリアルでは、LVMボリュームを作成して処理する方法について説明します。
LVMプールを作成する
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
この記事は、Linuxでハードドライブを操作する方法についての実用的な知識があることを前提としています。続行する前に基本の詳細が必要な場合は、Linux上のハードドライブの概要をお読みください。
通常、LVMを設定する必要はまったくありません。 Linuxをインストールすると、多くの場合、デフォルトでストレージの仮想「プール」が作成され、マシンのハードドライブがそのプールに追加されます。ただし、LVMストレージプールを手動で作成することは、舞台裏で何が起こっているかを知るための優れた方法です。
任意のサイズの2つの予備のサムドライブ、2つのハードドライブ、または2つの架空のドライブが定義された仮想マシンを使用して練習できます。
まず、架空のドライブをフォーマットします / dev / sdx これで、このデモで使用できる新しいドライブを用意できます。
# echo "warning, this ERASES everything on this drive."
warning, this ERASES everything on this drive.
# dd if=/dev/zero of=/dev/sdx count=8196
# parted /dev/sdx print | grep Disk
Disk /dev/sdx: 100GB
# parted /dev/sdx mklabel gpt
# parted /dev/sdx mkpart primary 1s 100%
このLVMコマンドは、ストレージプールを作成します。プールは1つ以上のドライブで構成でき、現在は1つで構成されています。この例のストレージプールの名前はビリヤードです。 、しかしあなたはそれを何とでも呼ぶことができます。
# vgcreate billiards /dev/sdx1
これで、大きくて曖昧なストレージスペースのプールができました。それを配る時間。 2つの論理ボリュームを作成するには (仮想ドライブと考えることができます)、 vol0と呼ばれるもの もう1つはvol1と呼ばれます 、次のように入力します:
# lvcreate billiards 49G --name vol0
# lvcreate billiards 49G --name vol1
これで、1つのストレージプールから2つのボリュームが切り出されましたが、どちらにもファイルシステムはまだありません。各ボリュームにファイルシステムを作成するには、ビリヤードを持参する必要があります オンラインのボリュームグループ。
# vgchange --activate y billiards
次に、ファイルシステムを作成します。 -L オプションは、ドライブがデスクトップにマウントされたときに表示されるドライブのラベルを提供します。ボリュームへのパスは、LVMストレージプール内の仮想デバイスであるため、これまで使用していた通常のデバイスパスとは少し異なります。
# mkfs.ext4 -L finance /dev/billiards/vol0
# mkfs.ext4 -L production /dev/billiards/vol1
これらの新しいボリュームは、デスクトップまたは端末からマウントできます。
# mkdir -p /mnt/vol0 /mnt/vol1>
# mount /dev/billiards/vol0 /mnt/vol0
# mount /dev/billiards/vol1 /mnt/vol1
これまでのところ、LVMは、ドライブが通常提供するパーティション分割にすぎません。単一の物理ドライブ上のドライブスペースの2つの異なるセクション(この例では、100GBドライブ上の49GBと49GB)です。財務部門がより多くのスペースを必要としていると想像してみてください。従来は、リストラする必要がありました。財務部門のデータを新しい専用の物理ドライブに移動するか、ドライブを追加してから醜いシンボリックリンクハックを使用して、ユーザーが追加のストレージスペースに簡単にアクセスできるようにします。ただし、LVMを使用する場合は、ストレージプールを拡張するだけです。
別のドライブをフォーマットし、それを使用してさらにスペースを作成することで、プールにスペースを追加できます。
まず、プールに追加する新しいドライブにパーティションを作成します。
# part /dev/sdy mkpart primary 1s 100%
次に、 vgextendを使用します 新しいドライブをプールの一部としてマークするコマンド。
# vgextend billiards /dev/sdy1
最後に、新しく使用可能になったストレージプールの一部を適切な論理ボリューム専用にします。
# lvextend -L +49G /dev/billiards/vol0
もちろん、拡張はそれほど直線的である必要はありません。生産部門が突然100TBの追加スペースを必要とすることを想像してみてください。 LVMを使用すると、必要な数の物理ドライブを追加し、各ドライブを追加して vgextendを使用できます。 100 TBのストレージプールを作成し、 lvextendを使用します 生産部門のストレージスペースを100TBの使用可能なスペースに「拡張」します。
utilsを使用してストレージ構造を理解する
LVMを本格的に使い始めると、ストレージの状況は圧倒される可能性があります。ストレージインフラストラクチャの構造に関する情報を収集するための2つのコマンドがあります。
まず、 vgdisplayがあります 、ボリュームグループに関する情報を表示します(これらはLVMの大規模な高レベル仮想ドライブと考えることができます)。
# vgdisplay
--- Volume group ---
VG Name billiards
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size <237.47 GiB
PE Size 4.00 MiB
Total PE 60792
Alloc PE / Size 60792 / <237.47 GiB
Free PE / Size 0 / 0
VG UUID j5RlhN-Co4Q-7d99-eM3K-G77R-eDJO-nMR9Yg
2つ目はlvdisplay 、論理ボリュームに関する情報を表示します(これらはユーザー向けのドライブと考えることができます)。
# lvdisplay
--- Logical volume ---
LV Path /dev/billiards/finance
LV Name finance
VG Name billiards
LV UUID qPgRhr-s0rS-YJHK-0Cl3-5MME-87OJ-vjjYRT
LV Write Access read/write
LV Creation host, time localhost, 2018-12-16 07:31:01 +1300
LV Status available
# open 1
LV Size 149.68 GiB
Current LE 46511
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:3
[...]
LVMの「問題」は、従来のドライブのパーティション分割に慣れている多くの管理ユーザーにはなじみのない方法でパーティションをラップすることです。通常の状況では、LVMドライブは、起動プロセスまたはデスクトップLVM統合中にアクティブ化され、かなり目に見えない形でマウントされます。それはあなたが通常考えなければならないことではありません。システムに問題が発生した後、リカバリモードになっている場合にのみ、問題が発生します。
LVMの構造内に「隠された」ボリュームをマウントする必要がある場合は、LVMツールチェーンがインストールされていることを確認する必要があります。 / usr / sbinにアクセスできる場合 ディレクトリを使用すると、通常のLVMコマンドすべてにアクセスできる可能性があります。ただし、最小限のシェルまたはレスキュー環境で起動した場合は、それらのツールがない可能性があります。優れたレスキュー環境にはLVMがインストールされているため、最小限のシェルを使用している場合は、それがインストールされているレスキューシステムを見つけてください。レスキューディスクを使用していて、LVMがインストールされていない場合は、手動でインストールするか、すでにインストールされているレスキューディスクを見つけてください。
繰り返しと明確にするために、LVMボリュームをマウントする方法は次のとおりです。
# vgchange --activate y
2 logical volume(s) in volume group "billiards" now active
# mkdir /mnt/finance
# mount /dev/billiards/finance /mnt/finance
LVMをLUKS暗号化と統合する
多くのLinuxディストリビューションは、オペレーティングシステムのインストール時にデフォルトでLVMを使用します。これにより、後でストレージを拡張できますが、Linux Unified Key Setup(LUKS)暗号化ツールチェーンによって提供されるディスク暗号化ともうまく統合されます。
暗号化は非常に重要であり、暗号化には2つの方法があります。GnuPGなどのツールを使用してファイルごとに暗号化する方法と、パーティション全体を暗号化する方法です。 Linuxでは、LUKSを使用するとパーティションの暗号化が簡単になります。LUKSはカーネルモジュールを介してLinuxに完全に統合されているため、ドライブをマウントしてシームレスな読み取りと書き込みを行うことができます。
メインドライブ全体の暗号化は、通常、インストール中のオプションとして行われます。プロンプトが表示されたら、ドライブ全体またはホームパーティションのみを暗号化することを選択し、その時点からLUKSを使用します。起動中のパスワードプロンプトを除いて、ほとんど見えません。
インストール中にディストリビューションでこのオプションが提供されない場合、またはドライブまたはパーティションを手動で暗号化するだけの場合は、それを行うことができます。
スペアドライブを使用すると、この例に従うことができます。小型の4GBサムドライブを使用しました。
まず、ドライブをコンピューターに接続します。ドライブを安全に消去し、lsblkを使用してシステム上のドライブを見つけてください。
ドライブがまだパーティション分割されていない場合は、ここでパーティション分割します。ドライブをパーティション分割する方法がわからない場合は、上記のリンクで手順を確認してください。
これで、暗号化を設定できます。まず、 cryptsetupでパーティションをフォーマットします コマンド。
# cryptsetup luksFormat /dev/sdx1
パーティションを暗号化していることに注意してください 、物理ドライブ自体ではありません。 LUKSがドライブを消去するという警告が表示されます。続行するには、それを受け入れる必要があります。パスフレーズを作成するように求められるので、そうします。そのパスフレーズを忘れないでください。それがないと、そのドライブに再び入ることはできません!
サムドライブのパーティションを暗号化しましたが、ドライブにはまだファイルシステムがありません。もちろん、ロックアウトされている間はドライブにファイルシステムを書き込むことはできないため、最初にLUKSでドライブを開きます。ドライブにわかりやすい名前を付けることができます。この例では、 mySafeDriveを使用しました 。
# cryptsetup luksOpen /dev/sdx1 mySafeDrive
パスフレーズを入力してドライブを開きます。
/ dev / mapperを見てください ボリュームを他のLVMボリュームと一緒にマウントしたことがわかります。つまり、そのドライブにアクセスできるようになります。カスタム名(mySafeDriveなど)は、 / dev / mapperにある自動生成された指定子へのシンボリックリンクです。 。このドライブを操作するときは、どちらのパスも使用できます。
# ls -l /dev/mapper/mySafeDrive
lrwxrwxrwx. 1 root root 7 Oct 24 03:58 /dev/mapper/mySafeDrive -> ../dm-4
ファイルシステムを作成します。
# mkfs.ext4 -o Linux -L mySafeExt4Drive /dev/mapper/mySafeDrive
次に、 ls -lhを実行します / dev / mapper mySafeDriveは実際には他の開発者へのシンボリックリンクであることがわかります。おそらく/dev / dm0 または類似。これがマウントできるファイルシステムです:
# mount /dev/mapper/mySafeExt4Drive /mnt/hd
これで、暗号化されたドライブ上のファイルシステムがマウントされました。どのドライブでも期待どおりにファイルを読み書きできます。
LUKSはカーネルに組み込まれているため、Linuxシステムはそれを処理する方法を完全に認識しています。ドライブを取り外し、接続し直して、デスクトップからマウントします。 KDEのDolphinファイルマネージャでは、ドライブを復号化してマウントする前に、パスワードの入力を求められます。
LVMとLUKSの使用は簡単で、ユーザーおよび管理者としての柔軟性を提供します。 Linux自体に緊密に統合されているため、十分にサポートされており、データにセキュリティのレイヤーを追加するための優れた方法です。今日試してみてください!