GIG

赴くままに技術を。

Azure Disk Enclyptionを有効化したOSディスクの拡張

Azure Disk Encryption(ADE)で暗号化されたOSディスクを拡張する手順についてメモ。

前提
  • 暗号化された OS ディスクのサイズ変更はサポート外のため自己責任

learn.microsoft.com

OS パーティションのサイズは変更できますか? ADE で暗号化された OS ディスクのサイズは現在のところ変更できません。

確認

対象仮想マシンを展開して、既定ではOSディスクサイズが64GiBであることを確認

# df -h
Filesystem                 Size  Used Avail Use% Mounted on
devtmpfs                   3.9G     0  3.9G   0% /dev
tmpfs                      3.9G     0  3.9G   0% /dev/shm
tmpfs                      3.9G  9.1M  3.9G   1% /run
tmpfs                      3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/rootvg-rootlv  2.0G   70M  2.0G   4% /
/dev/mapper/rootvg-usrlv    10G  1.5G  8.6G  15% /usr
/dev/sda2                  494M  153M  342M  31% /boot
/dev/mapper/rootvg-homelv 1014M   33M  982M   4% /home
/dev/mapper/rootvg-optlv   2.0G  140M  1.9G   7% /opt
/dev/mapper/rootvg-tmplv   2.0G   33M  2.0G   2% /tmp
/dev/sda1                  500M  9.9M  490M   2% /boot/efi
/dev/mapper/rootvg-varlv   8.0G  185M  7.9G   3% /var
/dev/sdb1                   16G   45M   15G   1% /mnt
/dev/sdc1                   42M  1.5K   42M   1% /mnt/azure_bek_disk
tmpfs                      783M     0  783M   0% /run/user/1000
# lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                   8:0    0   64G  0 disk
├─sda1                8:1    0  500M  0 part  /boot/efi
├─sda2                8:2    0  500M  0 part  /boot
├─sda3                8:3    0    2M  0 part
└─sda4                8:4    0   63G  0 part
  └─osencrypt       253:0    0   63G  0 crypt
    ├─rootvg-tmplv  253:1    0    2G  0 lvm   /tmp
    ├─rootvg-usrlv  253:2    0   10G  0 lvm   /usr
    ├─rootvg-optlv  253:3    0    2G  0 lvm   /opt
    ├─rootvg-homelv 253:4    0    1G  0 lvm   /home
    ├─rootvg-varlv  253:5    0    8G  0 lvm   /var
    └─rootvg-rootlv 253:6    0    2G  0 lvm   /
sdb                   8:16   0   16G  0 disk
└─sdb1                8:17   0   16G  0 part  /mnt
sdc                   8:32   0   48M  0 disk
└─sdc1                8:33   0   46M  0 part  /mnt/azure_bek_disk

ディスクサイズを変更するためAzureポータルより仮想マシンを停止(割り当て解除)し、その後OSディスクを選択して、サイズを変更 (今回は64GiBから128GiBに変更)を実施する。 その後仮想マシンを起動する。

パーティションを拡張する。

# lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                   8:0    0  128G  0 disk
├─sda1                8:1    0  500M  0 part  /boot/efi
├─sda2                8:2    0  500M  0 part  /boot
├─sda3                8:3    0    2M  0 part
└─sda4                8:4    0   63G  0 part
  └─osencrypt       253:0    0   63G  0 crypt
    ├─rootvg-tmplv  253:1    0    2G  0 lvm   /tmp
    ├─rootvg-usrlv  253:2    0   10G  0 lvm   /usr
    ├─rootvg-optlv  253:3    0    2G  0 lvm   /opt
    ├─rootvg-homelv 253:4    0    1G  0 lvm   /home
    ├─rootvg-varlv  253:5    0    8G  0 lvm   /var
    └─rootvg-rootlv 253:6    0    2G  0 lvm   /
sdb                   8:16   0   16G  0 disk
└─sdb1                8:17   0   16G  0 part  /mnt
sdc                   8:32   0   48M  0 disk
└─sdc1                8:33   0   46M  0 part  /mnt/azure_bek_disk
# growpart /dev/sda 4
CHANGED: partition=4 start=2054144 old: size=132161536 end=134215680 new: size=266381278 end=268435422
# lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                   8:0    0  128G  0 disk
├─sda1                8:1    0  500M  0 part  /boot/efi
├─sda2                8:2    0  500M  0 part  /boot
├─sda3                8:3    0    2M  0 part
└─sda4                8:4    0  127G  0 part
  └─osencrypt       253:0    0   63G  0 crypt
    ├─rootvg-tmplv  253:1    0    2G  0 lvm   /tmp
    ├─rootvg-usrlv  253:2    0   10G  0 lvm   /usr
    ├─rootvg-optlv  253:3    0    2G  0 lvm   /opt
    ├─rootvg-homelv 253:4    0    1G  0 lvm   /home
    ├─rootvg-varlv  253:5    0    8G  0 lvm   /var
    └─rootvg-rootlv 253:6    0    2G  0 lvm   /
sdb                   8:16   0   16G  0 disk
└─sdb1                8:17   0   16G  0 part  /mnt
sdc                   8:32   0   48M  0 disk
└─sdc1                8:33   0   46M  0 part  /mnt/azure_bek_disk

暗号化された領域を拡張する。

[root@labrhellvm ~]# cryptsetup resize /dev/mapper/osencrypt
[root@labrhellvm ~]# lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                   8:0    0  128G  0 disk
├─sda1                8:1    0  500M  0 part  /boot/efi
├─sda2                8:2    0  500M  0 part  /boot
├─sda3                8:3    0    2M  0 part
└─sda4                8:4    0  127G  0 part
  └─osencrypt       253:0    0   63G  0 crypt
    ├─rootvg-tmplv  253:1    0    2G  0 lvm   /tmp
    ├─rootvg-usrlv  253:2    0   10G  0 lvm   /usr
    ├─rootvg-optlv  253:3    0    2G  0 lvm   /opt
    ├─rootvg-homelv 253:4    0    1G  0 lvm   /home
    ├─rootvg-varlv  253:5    0    8G  0 lvm   /var
    └─rootvg-rootlv 253:6    0    2G  0 lvm   /
sdb                   8:16   0   16G  0 disk
└─sdb1                8:17   0   16G  0 part  /mnt
sdc                   8:32   0   48M  0 disk
└─sdc1                8:33   0   46M  0 part  /mnt/azure_bek_disk
[root@labrhellvm ~]# pvs
  PV                    VG     Fmt  Attr PSize   PFree
  /dev/mapper/osencrypt rootvg lvm2 a--  <63.02g <38.02g
[root@labrhellvm ~]# pvresize /dev/mapper/osencrypt
  Physical volume "/dev/mapper/osencrypt" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@labrhellvm ~]# pvs
  PV                    VG     Fmt  Attr PSize   PFree
  /dev/mapper/osencrypt rootvg lvm2 a--  <63.02g <38.02g

再起動して反映される確認する。

[root@labrhellvm ~]# pvs
  PV                    VG     Fmt  Attr PSize   PFree
  /dev/mapper/osencrypt rootvg lvm2 a--  <63.02g <38.02g

変わらないので、再度PVを拡張すると、128 GiB まで拡張された。

[root@labrhellvm ~]# pvresize /dev/mapper/osencrypt
  Physical volume "/dev/mapper/osencrypt" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@labrhellvm ~]# pvs
  PV                    VG     Fmt  Attr PSize    PFree
  /dev/mapper/osencrypt rootvg lvm2 a--  <127.02g <102.02g

root ("/") に全振りしてみる。

# lvs
  LV     VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  homelv rootvg -wi-ao----  1.00g
  optlv  rootvg -wi-ao----  2.00g
  rootlv rootvg -wi-ao----  2.00g
  tmplv  rootvg -wi-ao----  2.00g
  usrlv  rootvg -wi-ao---- 10.00g
  varlv  rootvg -wi-ao----  8.00g
# lvextend -l 100%FREE /dev/rootvg/rootlv
  Size of logical volume rootvg/rootlv changed from 2.00 GiB (512 extents) to <102.02 GiB (26116 extents).
  Logical volume rootvg/rootlv successfully resized.
# lvs
  LV     VG     Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  homelv rootvg -wi-ao----    1.00g
  optlv  rootvg -wi-ao----    2.00g
  rootlv rootvg -wi-ao---- <102.02g
  tmplv  rootvg -wi-ao----    2.00g
  usrlv  rootvg -wi-ao----   10.00g
  varlv  rootvg -wi-ao----    8.00g

最後に対象LV上のファイルシステムを拡張する。

# df -h
Filesystem                 Size  Used Avail Use% Mounted on
devtmpfs                   3.9G     0  3.9G   0% /dev
tmpfs                      3.9G     0  3.9G   0% /dev/shm
tmpfs                      3.9G  9.1M  3.9G   1% /run
tmpfs                      3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/rootvg-rootlv  2.0G   70M  2.0G   4% /
/dev/mapper/rootvg-usrlv    10G  1.5G  8.6G  15% /usr
/dev/sda2                  494M  153M  342M  31% /boot
/dev/sda1                  500M  9.9M  490M   2% /boot/efi
/dev/mapper/rootvg-homelv 1014M   33M  982M   4% /home
/dev/mapper/rootvg-tmplv   2.0G   33M  2.0G   2% /tmp
/dev/mapper/rootvg-optlv   2.0G  140M  1.9G   7% /opt
/dev/mapper/rootvg-varlv   8.0G  186M  7.9G   3% /var
/dev/sdb1                   16G   45M   15G   1% /mnt
/dev/sdc1                   42M  1.5K   42M   1% /mnt/azure_bek_disk
tmpfs                      783M     0  783M   0% /run/user/1000
# xfs_growfs /
meta-data=/dev/mapper/rootvg-rootlv isize=512    agcount=4, agsize=131072 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=524288, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 524288 to 26742784
# df -h
Filesystem                 Size  Used Avail Use% Mounted on
devtmpfs                   3.9G     0  3.9G   0% /dev
tmpfs                      3.9G     0  3.9G   0% /dev/shm
tmpfs                      3.9G  9.1M  3.9G   1% /run
tmpfs                      3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/rootvg-rootlv  103G   82M  102G   1% /
/dev/mapper/rootvg-usrlv    10G  1.5G  8.6G  15% /usr
/dev/sda2                  494M  153M  342M  31% /boot
/dev/sda1                  500M  9.9M  490M   2% /boot/efi
/dev/mapper/rootvg-homelv 1014M   33M  982M   4% /home
/dev/mapper/rootvg-tmplv   2.0G   33M  2.0G   2% /tmp
/dev/mapper/rootvg-optlv   2.0G  140M  1.9G   7% /opt
/dev/mapper/rootvg-varlv   8.0G  184M  7.9G   3% /var
/dev/sdb1                   16G   45M   15G   1% /mnt
/dev/sdc1                   42M  1.5K   42M   1% /mnt/azure_bek_disk
tmpfs                      783M     0  783M   0% /run/user/1000