Azure Disk Encryption を使用する論理ボリューム管理デバイスのサイズを変更する方法
適用対象: ✔️ Linux VM ✔️ フレキシブル スケール セット
この記事では、Azure Disk Encryption を使用するデータ ディスクのサイズを変更する方法について説明します。 ディスク サイズを変更するには、Linux で論理ボリューム管理 (LVM) を使用します。 この手順は複数のシナリオに適用されます。
このサイズ変更プロセスは次の環境で使用できます。
- Linux ディストリビューション:
- Red Hat Enterprise Linux (RHEL) 7 以降
- Ubuntu 18.04 以降
- SUSE 12 以降
- Azure Disk Encryption のバージョン:
- シングルパス拡張機能
- デュアルパス拡張機能
前提条件
この記事では、以下のことを前提としています。
既存の LVM 構成。 詳細については、Linux VM における LVM の構成に関する記事をご覧ください。
既に Azure Disk Encryption によって暗号化されているディスク。 詳細については、「暗号化されたデバイスで LVM と RAID を構成する」をご覧ください。
Linux と LVM の使用経験。
Azure 上のデータ ディスクの /dev/disk/scsi1/ パスの使用経験。 詳細については、Linux VM デバイス名の問題のトラブルシューティングに関する記事をご覧ください。
シナリオ
この記事の手順は、次のシナリオに適用されます。
- 従来の LVM 構成および LVM-on-crypt 構成
- 従来の LVM 暗号化
- LVM-on-crypt
- データ ディスクのみ。 OS ディスクのサイズ変更はサポートされていません。
従来の LVM 構成および LVM-on-crypt 構成
従来の LVM 構成および LVM-on-crypt 構成では、ボリューム グループ (VG) に使用可能な領域がある場合に、論理ボリューム (LV) が拡張されます。
従来の LVM 暗号化
従来の LVM 暗号化では、LV が暗号化されます。 ディスク全体は暗号化されません。
従来の LVM 暗号化を使用すると、次のことができます。
- 新しい物理ボリューム (PV) を追加するときに LV を拡張する。
- 既存の PV のサイズを変更するときに LV を拡張する。
LVM-on-crypt
ディスク暗号化のために推奨される方法は、LVM-on-crypt です。 この方法の場合、LV だけでなくディスク全体が暗号化されます。
LVM-on-crypt を使用すると、次のことができます。
- 新しい PV を追加するときに LV を拡張する。
- 既存の PV のサイズを変更するときに LV を拡張する。
Note
従来の LVM 暗号化と LVM-on-crypt を同じ VM 上で混在させることはお勧めしません。
以下のセクションでは、LVM と LVM-on-crypt の使用方法の例を紹介します。 これらの例では、ディスク、PV、VG、LV、ファイル システム、汎用一意識別子 (UUID)、マウント ポイントには既存の値を使用します。 これらの値は、ご利用の環境に合わせて独自の値に置き換えてください。
VG に使用可能な領域がある場合に LV を拡張する
LV のサイズを変更する従来の方法は、VG に使用可能な領域がある場合に LV を拡張することです。 この方法は、暗号化されていないディスク、従来の LVM 暗号化ボリューム、および LVM-on-crypt 構成に使用できます。
サイズを増やすファイル システムの現在のサイズを確認します。
df -h /mountpoint
LV を増やすための十分な領域が VG にあることを確認します。
sudo vgs
vgdisplay
を使用することもできます。sudo vgdisplay vgname
サイズ変更の必要がある LV を特定します。
sudo lsblk
LVM-on-crypt の場合、この出力は暗号化されたレイヤーがディスク レベルであることを示しています。
LV のサイズを確認します。
sudo lvdisplay lvname
ファイル システムのサイズをオンラインで変更するために、
-r
を使用して LV のサイズを増やします。sudo lvextend -r -L +2G /dev/vgname/lvname
LV とファイル システムの新しいサイズを確認します。
df -h /mountpoint
このサイズの出力は、LV とファイル システムのサイズが正常に変更されたことを示しています。
LV レベルで変更を確認するには、LV の情報をもう一度確認します。
sudo lvdisplay lvname
新しい PV を追加することで従来の LVM ボリュームを拡張する
新しいディスクを追加して VG のサイズを増やす必要がある場合は、新しい PV を追加することで従来の LVM ボリュームを拡張します。
サイズを増やすファイル システムの現在のサイズを確認します。
df -h /mountpoint
現在の PV 構成を確認します。
sudo pvs
現在の VG の情報を確認します。
sudo vgs
現在のディスク リストを確認します。 /dev/disk/azure/scsi1/ のデバイスを確認することで、データ ディスクを特定します。
sudo ls -l /dev/disk/azure/scsi1/
lsblk
の出力を確認します。sudo lsbk
Linux VM へのデータ ディスクのアタッチに関する記事の手順に従って、新しいディスクを VM にアタッチします。
ディスク リストを確認し、新しいディスクに注目します。
sudo ls -l /dev/disk/azure/scsi1/
sudo lsblk
新しいデータ ディスクの上に新しい PV を作成します。
sudo pvcreate /dev/newdisk
この方法では、ディスク全体がパーティションなしの PV として使用されます。 代わりに、
fdisk
を使用してパーティションを作成し、そのパーティションをpvcreate
に使用することもできます。PV が PV リストに追加されたことを確認します。
sudo pvs
新しい PV を VG に追加することで、VG を拡張します。
sudo vgextend vgname /dev/newdisk
新しい VG のサイズを確認します。
sudo vgs
lsblk
を使用して、サイズ変更が必要な LV を特定します。sudo lsblk
ファイル システムのサイズをオンラインで増やすために、
-r
を使用して LV のサイズを拡張します。sudo lvextend -r -L +2G /dev/vgname/lvname
LV とファイル システムの新しいサイズを確認します。
df -h /mountpoint
重要
Azure Data Encryption を従来の LVM 構成で使用すると、暗号化されたレイヤーはディスク レベルではなく LV レベルで作成されます。
この時点で、暗号化されたレイヤーは新しいディスクに展開されます。 実際のデータ ディスクにはプラットフォーム レベルでの暗号化設定はないため、暗号化の状態は更新されません。
このような理由で、LVM-on-crypt が推奨される方法となっています。
ポータルで暗号化の情報を確認します。
ディスクの暗号化設定を更新するには、新しい LV を追加し、VM 上で拡張機能を有効にします。
新しい LV を追加し、そこにファイル システムを作成して、それを
/etc/fstab
に追加します。暗号化拡張機能を再度設定します。 今回は、新しいデータ ディスクにプラットフォーム レベルで暗号化設定をスタンプします。 CLI の例を次に示します。
az vm encryption enable -g ${RGNAME} --name ${VMNAME} --disk-encryption-keyvault "<your-unique-keyvault-name>"
ポータルで暗号化の情報を確認します。
暗号化設定が更新されたら、新しい LV を削除できます。 エントリを作成した /etc/fstab
と /etc/crypttab
からも削除してください。
クリーンアップを完了するには、次の手順に従います。
LV のマウントを解除します。
sudo umount /mountpoint
ボリュームの暗号化されたレイヤーを閉じます。
sudo cryptsetup luksClose /dev/vgname/lvname
LV を削除します。
sudo lvremove /dev/vgname/lvname
既存の PV のサイズを変更して従来の LVM ボリュームを拡張する
シナリオによっては、制限の内容により、既存のディスクのサイズを変更しなければならない場合があります。 その方法は次のとおりです。
使用する暗号化されたディスクを特定します。
sudo ls -l /dev/disk/azure/scsi1/
sudo lsblk -fs
PV の情報を確認します。
sudo pvs
画像内の結果は、すべての PV の全領域が現在使用されていることを示しています。
VG の情報を確認します。
sudo vgs sudo vgdisplay -v vgname
ディスク サイズを確認します。
fdisk
またはlsblk
を使用して、ドライブのサイズを一覧表示できます。for disk in `sudo ls -l /dev/disk/azure/scsi1/* | awk -F/ '{print $NF}'` ; do echo "sudo fdisk -l /dev/${disk} | grep ^Disk "; done | bash sudo lsblk -o "NAME,SIZE"
ここでは、どの PV がどの LV に関連付けられているかを、
lsblk -fs
を使用して特定しました。lvdisplay
を実行することで、関連付けを特定できます。sudo lvdisplay --maps VG/LV sudo lvdisplay --maps datavg/datalv1
この場合、4 つのデータ ドライブはすべて、同じ VG と 1 つの LV に含まれています。 実際の構成は異なる場合があります。
現在のファイル システムの使用率を確認します。
df -h /datalvm*
「Azure マネージド ディスクの拡張」の手順に従って、データ ディスクのサイズを変更します。 ポータル、CLI、または PowerShell を使用できます。
重要
Linux VM 上の一部のデータ ディスクは、VM の割り当てを解除しなくてもサイズを変更できます。お使いのディスクが要件を満たしていることを確認するには、[Linux VM 上の仮想ハード ディスクを拡張する](/azure/virtual-machines/linux/expand-disks? tabs=ubuntu#expand-an-azure-managed-disk) を確認してください。
VM を起動してから、
fdisk
を使用して新しいサイズを確認します。for disk in `sudo ls -l /dev/disk/azure/scsi1/* | awk -F/ '{print $NF}'` ; do echo "sudo fdisk -l /dev/${disk} | grep ^Disk "; done | bash sudo lsblk -o "NAME,SIZE"
この場合、
/dev/sdd
は 5 G から 20 G にサイズ変更されました。現在の PV のサイズを確認します。
sudo pvdisplay /dev/resizeddisk
ディスクのサイズが変更された場合でも、PV は以前のサイズのままとなります。
PV のサイズを変更します。
sudo pvresize /dev/resizeddisk
PV のサイズを確認します。
sudo pvdisplay /dev/resizeddisk
サイズを変更するディスクのすべてに同じ手順を適用します。
VG の情報を確認します。
sudo vgdisplay vgname
これで、LV に割り当てるのに十分な領域が VG に確保されました。
LV のサイズを変更します。
sudo lvresize -r -L +5G vgname/lvname sudo lvresize -r -l +100%FREE /dev/datavg/datalv01
ファイル システムのサイズを確認します。
df -h /datalvm2
新しい PV を追加することで LVM-on-crypt ボリュームを拡張する
新しい PV を追加することで LVM-on-crypt ボリュームを拡張することもできます。 この方法は、「暗号化されたデバイスで LVM と RAID を構成する」の手順に厳密に従っています。 新しいディスクを追加し、それを LVM-on-crypt 構成で設定する方法について説明しているセクションをご覧ください。
この方法を使用して、既存の LV に領域を追加できます。 また、新しい VG または LV を作成することもできます。
使用する VG の現在のサイズを確認します。
sudo vgdisplay vgname
展開するファイル システムと LV のサイズを確認します。
sudo lvdisplay /dev/vgname/lvname
df -h mountpoint
新しいデータ ディスクを VM に追加し、それを特定します。
新しいディスクを追加する前に、ディスクを確認します。
sudo fdisk -l | egrep ^"Disk /"
新しいディスクを追加する前にディスクを確認する別の方法は次のとおりです。
sudo lsblk
新しいディスクを追加する際は、PowerShell、Azure CLI、または Azure portal を使用できます。 詳細については、Linux VM へのデータ ディスクのアタッチに関する記事をご覧ください。
カーネル名のスキームは、新しく追加されたデバイスに適用されます。 通常、新しいドライブには、使用可能な次の文字が割り当てられます。 この場合、追加されたディスクは
sdd
です。ディスクを調べて、新しいディスクが追加されていることを確認します。
sudo fdisk -l | egrep ^"Disk /"
sudo lsblk
最近追加されたディスクの上にファイル システムを作成します。 そのディスクを、
/dev/disk/azure/scsi1/
のリンクされたデバイスと一致させます。sudo ls -la /dev/disk/azure/scsi1/
sudo mkfs.ext4 /dev/disk/azure/scsi1/${disk}
新しく追加されたディスク用の一時マウント ポイントを作成します。
newmount=/data4 sudo mkdir ${newmount}
最近作成されたファイル システムを
/etc/fstab
に追加します。sudo blkid /dev/disk/azure/scsi1/lun4| awk -F\" '{print "UUID="$2" '${newmount}' "$4" defaults,nofail 0 0"}' >> /etc/fstab
新しく作成したファイル システムをマウントします。
sudo mount -a
新しいファイル システムがマウントされていることを確認します。
df -h
sudo lsblk
以前データ ドライブ用に開始した暗号化を再開します。
ヒント
LVM-on-crypt の場合、
EncryptFormatAll
を使用することをお勧めします。 そうしないと、追加のディスクを設定している間に、二重暗号化が発生する可能性があります。詳細については、「暗号化されたデバイスで LVM と RAID を構成する」をご覧ください。
次に例を示します。
az vm encryption enable \ --resource-group ${RGNAME} \ --name ${VMNAME} \ --disk-encryption-keyvault ${KEYVAULTNAME} \ --key-encryption-key ${KEYNAME} \ --key-encryption-keyvault ${KEYVAULTNAME} \ --volume-type "DATA" \ --encrypt-format-all \ -o table
暗号化が完了すると、新しく追加されたディスクに crypt レイヤーが表示されます。
sudo lsblk
新しいディスクの暗号化されたレイヤーのマウントを解除します。
sudo umount ${newmount}
現在の PV の情報を確認します。
sudo pvs
ディスクの暗号化されたレイヤーの上に PV を作成します。 先程の
lsblk
コマンドからデバイス名を取得します。 デバイス名の前に/dev/
マッパーを追加して PV を作成します。sudo pvcreate /dev/mapper/mapperdevicename
現在の
ext4 fs
シグネチャのワイプに関する警告が表示されます。 この警告は想定されています。 この質問にはy
で回答します。新しい PV が LVM 構成に追加されたことを確認します。
sudo pvs
増やす必要がある VG に新しい PV を追加します。
sudo vgextend vgname /dev/mapper/nameofhenewpv
VG の新しいサイズと空き領域を確認します。
sudo vgdisplay vgname
Total PE
の数とFree PE / Size
の増加に注意してください。LV とファイル システムのサイズを増やします。
lvextend
で-r
オプションを使用します。 この例では、VG 内の使用可能な領域の合計を、指定された LV に追加しています。sudo lvextend -r -l +100%FREE /dev/vgname/lvname
次の手順に従って、変更を確認します。
LV のサイズを確認します。
sudo lvdisplay /dev/vgname/lvname
ファイル システムの新しいサイズを確認します。
df -h /mountpoint
LVM レイヤーが暗号化されたレイヤーの上にあることを確認します。
sudo lsblk
オプションなしで
lsblk
を使用すると、マウント ポイントが複数回表示されます。 このコマンドでは、デバイスと LV で並べ替えが行われます。lsblk -fs
を使用することができます。 このコマンドでは、-fs
によって並べ替え順序が反転され、マウント ポイントが 1 回だけ表示されるようになります。 ディスクは複数回表示されます。sudo lsblk -fs
既存の PV のサイズを変更して、crypt ボリューム上の LVM を拡張する
使用する暗号化されたディスクを特定します。
sudo lsblk
sudo lsblk -s
使用する PV の情報を確認します。
sudo pvs
使用する VG の情報を確認します。
sudo vgs
使用する LV の情報を確認します。
sudo lvs
ファイル システムの使用率を確認します。
df -h /mountpoint(s)
使用するディスクのサイズを確認します。
sudo fdisk sudo fdisk -l | egrep ^"Disk /" sudo lsblk
データ ディスクのサイズを変更します。 ポータル、CLI、または PowerShell を使用できます。 詳細については、Linux VM での仮想ハード ディスクの拡張に関するページの、ディスクのサイズ変更に関するセクションをご覧ください。
重要
VM の実行中に仮想ディスクのサイズを変更することはできません。 この手順では、お使いの VM の割り当ては解除してください。
使用するディスクのサイズを確認します。
sudo fdisk sudo fdisk -l | egrep ^"Disk /" sudo lsblk
この場合では、両方のディスクのサイズが 2 GB から 4 GB に変更されています。 しかし、ファイル システム、LV、PV のサイズに変更はありません。
現在の PV のサイズを確認します。 LVM-on-crypt では、PV は
/dev/sd*
デバイスではなく/dev/mapper/
デバイスであることに注意してください。sudo pvdisplay /dev/mapper/devicemappername
PV のサイズを変更します。
sudo pvresize /dev/mapper/devicemappername
新しい PV のサイズを確認します。
sudo pvdisplay /dev/mapper/devicemappername
PV 上の暗号化されたレイヤーのサイズを変更します。
sudo cryptsetup resize /dev/mapper/devicemappername
サイズを変更するディスクのすべてに同じ手順を適用します。
使用する VG の情報を確認します。
sudo vgdisplay vgname
これで、LV に割り当てるのに十分な領域が VG に確保されました。
LV の情報を確認します。
sudo lvdisplay vgname/lvname
ファイル システムの使用率を確認します。
df -h /mountpoint
LV のサイズを変更します。
sudo lvresize -r -L +2G /dev/vgname/lvname
ここでは、
-r
オプションを使用して、ファイル システムのサイズも変更します。LV の情報を確認します。
sudo lvdisplay vgname/lvname
ファイル システムの使用率を確認します。
df -h /mountpoint
同じサイズ変更プロシージャを、それを必要とする他のすべての LV に適用します。