web-dev-qa-db-ja.com

LVMバックエンドを使用している場合、lxc / lxdイメージのサイズを変更するにはどうすればよいですか?

私はLXDを数年使用していますが、テスト環境でこのプラットフォームを使用できてうれしいです。しかし、数日前、Microsoft SQL Server 2017をインストールできませんでした。その理由は、デフォルトのZFSバックエンドを使用したためです。

わかりました。ext4が必要な場合は確認しました。 LVMを使用する必要があります。問題ありません。「ボリュームグループ」を作成し、LXDでこのグループを使用するようにマークを付けました。しかし...最初の問題は、LXDが10GB以下の論理ボリュームを作成することです。

このコマンドの後、

lxc init ubuntu:16.04 container2

私はこのボリュームを受け取りました:

Disk /dev/mapper/mainVG-containers_container2: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes

lvextendを介してサイズを追加しようとしました:
lvextend -L +10G /dev/mapper/mainVG-containers_container2

しかし、次のエラーが発生しました。

論理ボリュームcontainers_container2がボリュームグループmainVGに見つかりません

さて、LXDなしで論理ボリュームを作成しようとしました。

私が作った:

lvcreate -n lv_data1 --size 12G mainVG

そして受け取った:

Disk /dev/mapper/mainVG-lv_data1: 12 GiB, 12884901888 bytes, 25165824 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

そして私は作った:

lvextend -L +10G /dev/mapper/mainVG-lv_data1
  Size of logical volume mainVG/lv_data1 changed from 12.00 GiB (3072 extents) to 22.00 GiB (5632 extents).
  Logical volume mainVG/lv_data1 successfully resized.

ご覧のとおり、この場合、論理ボリュームのサイズを正常に変更できます。

多分私は何かを知らないのですか?
セキュリティグループに何かを追加する必要があるかもしれませんか?手伝ってくれませんか?
論理ボリュームのサイズを変更する他の方法をご存知の場合は、ご連絡をお待ちしております。ありがとう

1
Piduna

Lvextendを使用すると、LVを簡単に拡張できます。これが例です。

まず、pool0を600GBのストレージで、containers_mirrorsボリュームを10GBのストレージでヒービングします。

root@hawk:~# lvs
  LV                VG   Attr       LSize   Pool  Origin     Data%  Meta%  Move Log Cpy%Sync Convert
  containers_lugbg   main Vwi-a-tz--  10.00g pool0 images_15 8.31                                   
  containers_mirrors main Vwi-a-tz--  10.00g pool0 images_33 7.59                                   
  containers_ubuntu  main Vwi-aotz--  10.00g pool0 images_39 7.03                                   
  images_15          main Vwi-a-tz--  10.00g pool0           6.10
  images_33          main Vwi-a-tz--  10.00g pool0           5.86                                   
  images_39          main Vwi-a-tz--  10.00g pool0           6.22
  pool0              main twi-aotz-- 600.00g 0.63            3.39                            
  root               main -wi-ao----  40.00g                                                                                               

次に、ボリューム(containers_mirrors)を拡張します。

root@hawk:~# lvextend -L +800G main/containers_mirrors 
  WARNING: Sum of all thin volume sizes (880.00 GiB) exceeds the size of thin pool main/pool0 (600.00 GiB).
  WARNING: You have not turned on protection against thin pools running out of space.
  WARNING: Set activation/thin_pool_autoextend_threshold below 100 to trigger automatic extension of thin pools before they get full.
  Size of logical volume main/containers_mirrors changed from 10.00 GiB (2560 extents) to 810.00 GiB (207360 extents).
  Logical volume main/containers_mirrors successfully resized.

これが必要な場合はエラーを無視できますが、実際にシンプールを拡張する場合は、次のことを行う必要があります。

root@hawk:~# lvextend -l +300G main/pool0
  Invalid argument for --extents: +300G
  Error during parsing of command line.
root@hawk:~# lvextend -L +300G main/pool0  
  Size of logical volume main/pool0_tdata changed from 600.00 GiB (153600 extents) to 900.00 GiB (230400 extents).
  Logical volume main/pool0_tdata successfully resized.

結果は次のとおりです。

root@hawk:~# lvs
  LV                 VG   Attr       LSize   Pool  Origin    Data%  Meta%  Move Log Cpy%Sync Convert
  containers_lugbg   main Vwi-a-tz--  10.00g pool0 images_15 8.31
  containers_mirrors main Vwi-a-tz-- 810.00g pool0 images_33 0.09
  containers_ubuntu  main Vwi-aotz--  10.00g pool0 images_39 7.03
  images_15          main Vwi-a-tz--  10.00g pool0           6.10
  images_33          main Vwi-a-tz--  10.00g pool0           5.86
  images_39          main Vwi-a-tz--  10.00g pool0           6.22
  pool0              main twi-aotz-- 900.00g                 0.42   3.59
  root               main -wi-ao----  40.00g

最後に、コンテナのファイルシステムのサイズを変更する必要があります。これは、resize2fsを使用して行われます。問題を防ぐために、最初にコンテナを停止する必要があります。

root@hawk:~# lxc stop mirrors

次に、fsを確認します。

root@hawk:~# e2fsck -f /dev/main/containers_mirrors
e2fsck 1.45.0 (6-Mar-2019)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/main/containers_mirrors: 16531/655360 files (0.2% non-contiguous), 203696/2621440 blocks

そして最後にfsのサイズを変更します。

root@hawk:~# resize2fs /dev/main/containers_mirrors
resize2fs 1.45.0 (6-Mar-2019)
Resizing the filesystem on /dev/main/containers_mirrors to 212336640 (4k) blocks.
The filesystem on /dev/main/containers_mirrors is now 212336640 (4k) blocks long.
1
Marian Marinov

そして、別のオプションがあります。 LXDにサイズ変更を依頼することができます。

ただし、シンプールのサイズ変更は処理されません(十分な大きさがない場合)。

root@hawk:~# lxc config set CONTAINER root size 100GB

ほとんどの場合、コンテナを再起動する必要があることに注意してください。

また、LVMには制限があり、このボリュームからスナップショットがある場合、それらが削除されるまでサイズを変更することはできません。

1
Marian Marinov