このドキュメントでは、Azure 仮想マシンで論理ボリューム マネージャー (LVM) を構成する方法について説明します。 LVM は、Azure VM の OS ディスクまたはデータ ディスクで使用できますが、既定では、ほとんどのクラウド イメージでは、OS ディスクに LVM が構成されていません。 以下の手順では、データ ディスクの LVM の構成に重点を置きます。
線形とストライプの論理ボリューム
LVM を使用して、多数の物理ディスクを 1 つのストレージ ボリュームに結合できます。 既定では、LVM は通常、線形論理ボリュームを作成します。つまり、物理ストレージは連結されます。 この場合、通常、読み取り/書き込み操作は 1 つのディスクにのみ送信されます。 これに対して、ボリューム グループに含まれる複数のディスク (RAID0 と同様) に読み取りと書き込みが分散されるストライピングされた論理ボリュームを作成することもできます。 パフォーマンス上の理由から、接続されているすべてのデータ ディスクを読み取りと書き込みで利用できるように、論理ボリュームをストライピングすることが必要になる可能性があります。
このドキュメントでは、複数のデータ ディスクを 1 つのボリューム グループに結合し、ストライピングされた論理ボリュームを作成する方法について説明します。 以下の手順は、ほとんどのディストリビューションで動作するように一般化されています。 ほとんどの場合、Azure 上の LVM を管理するためのユーティリティとワークフローは、他の環境と根本的に異なっていません。 通常どおり、特定のディストリビューションで LVM を使用するためのドキュメントとベスト プラクティスについては、Linux ベンダーにお問い合わせください。
データ ディスクの接続
LVM を使用するときは、通常、2 つ以上の空のデータ ディスクから始める必要があります。 IO のニーズに基づいて、Standard Storage に格納されているディスクを接続できます。ディスクあたり最大 500 IO/ps、またはディスクあたり最大 5000 IO/ps の Premium ストレージを使用できます。 この記事では、Linux 仮想マシンにデータ ディスクをプロビジョニングしてアタッチする方法については詳しく説明しません。 空のデータ ディスクを Azure 上の Linux 仮想マシンに接続する方法の詳細については、Microsoft Azure の記事「ディスクを接続する」を参照してください。
LVM ユーティリティをインストールする
Ubuntu
sudo apt-get update sudo apt-get install lvm2
RHEL、CentOS 、Oracle Linux
sudo yum install lvm2
SLES 12 と openSUSE
sudo zypper install lvm2
SLES 11
sudo zypper install lvm2
SLES11 では、
/etc/sysconfig/lvm
を編集し、LVM_ACTIVATED_ON_DISCOVERED
を "有効" に設定する必要もあります。LVM_ACTIVATED_ON_DISCOVERED="enable"
LVM の構成
このガイドでは、3 つのデータ ディスクが接続されていることを前提としています。これは、 /dev/sdc
、 /dev/sdd
、 /dev/sde
と言います。 これらのパスは、VM のディスク パス名と一致しない場合があります。 'sudo fdisk -l
' または同様のコマンドを実行して、使用可能なディスクを一覧表示できます。
物理ボリュームを準備します。
sudo pvcreate /dev/sd[cde] Physical volume "/dev/sdc" successfully created Physical volume "/dev/sdd" successfully created Physical volume "/dev/sde" successfully created
ボリューム グループを作成します。 この例では、ボリューム グループ
data-vg01
を呼び出しています。sudo vgcreate data-vg01 /dev/sd[cde] Volume group "data-vg01" successfully created
論理ボリュームを作成します。(複数可) 次のコマンドでは、ボリューム グループ全体にまたがって
data-lv01
という 1 つの論理ボリュームを作成しますが、ボリューム グループ内に複数の論理ボリュームを作成することもできます。sudo lvcreate --extents 100%FREE --stripes 3 --name data-lv01 data-vg01 Logical volume "data-lv01" created.
論理ボリュームのフォーマット
sudo mkfs -t ext4 /dev/data-vg01/data-lv01
注
SLES11 では、ext4 の代わりに
-t ext3
を使用します。 SLES11 では、ext4 ファイルシステムへの読み取り専用アクセスのみがサポートされます。
新しいファイル システムを /etc/fstab に追加する
重要
/etc/fstab
ファイルを不適切に編集すると、システムが起動できなくなる可能性があります。 編集方法がはっきりわからない場合は、このファイルを適切に編集する方法について、ディストリビューションのドキュメントを参照してください。 編集する前に、/etc/fstab
ファイルのバックアップを作成することもお勧めします。
新しいファイル システムに必要なマウント ポイントを作成します。次に例を示します。
sudo mkdir /data
論理ボリューム パスを特定する
lvdisplay --- Logical volume --- LV Path /dev/data-vg01/data-lv01 ....
テキスト エディターで
/etc/fstab
を開き、新しいファイル システムのエントリを追加します。次に例を示します。/dev/data-vg01/data-lv01 /data ext4 defaults 0 2
次に、
/etc/fstab
を保存して閉じます。/etc/fstab
エントリが正しいことをテストします。sudo mount -a
このコマンドの結果としてエラー メッセージが表示される場合は、
/etc/fstab
ファイルの構文を確認してください。次に、
mount
コマンドを実行して、ファイル システムがマウントされていることを確認します。mount ...... /dev/mapper/data--vg01-data--lv01 on /data type ext4 (rw)
(省略可能) フェールセーフ ブート パラメーターが指定された
/etc/fstab
多くのディストリビューションには、
nobootwait
ファイルに追加できるnofail
または/etc/fstab
マウント パラメーターが含まれます。 これらのパラメーターを使用すると、特定のファイル システムをマウントするときにエラーが発生し、RAID ファイル システムを適切にマウントできない場合でも Linux システムを起動し続けることができます。 これらのパラメーターの詳細については、ディストリビューションのドキュメントを参照してください。例 (Ubuntu):
/dev/data-vg01/data-lv01 /data ext4 defaults,nobootwait 0 2
TRIM/UNMAP のサポート
一部の Linux カーネルでは、ディスク上の未使用ブロックを破棄するために TRIM/UNMAP 操作がサポートされます。 これらの操作は、削除されたページが無効になり、破棄できることを Azure に通知するために、主に Standard Storage で役立ちます。 大きなファイルを作成してから削除するときにページを破棄することで、コストを節約できます。
Linux VM で TRIM のサポートを有効にする方法は 2 通りあります。 通常どおり、ご使用のディストリビューションで推奨される方法をお問い合わせください。
次のように、
discard
で/etc/fstab
マウント オプションを使用します。/dev/data-vg01/data-lv01 /data ext4 defaults,discard 0 2
場合によっては、
discard
オプションがパフォーマンスに影響を与える場合があります。 または、fstrim
コマンドを手動でコマンド ラインから実行するか、crontab に追加して定期的に実行することができます。Ubuntu
# sudo apt-get install util-linux # sudo fstrim /datadrive
RHEL、CentOS 、Oracle Linux
# sudo yum install util-linux # sudo fstrim /datadrive