Конфигурация LXC: выделение дискового пространства

Я пытаюсь создать контейнер LXC, следуя приведенным ниже контейнерам.

"Введение в контейнеры в Linux с использованием LXC"

Я могу создать контейнер и запустить его. Но когда я выполню df-h Команда из контейнера lxc Я вижу, что он имеет то же имя файловой системы, что и хост-компьютер (как это изменить?).

Мой запрос прост: как указать дисковое пространство для созданного контейнера, чтобы у диска было ограничение, как в openvz, когда мы создаем контейнер, мы можем указать вместе с ним дисковое пространство.

Я пытался добавить

lxc-create -n test01 -t /usr/local/share/templates/lxc-centos --dir=/home/images/lxc/test01 -B lvm --fssize=2G

, но это не позволяет мне создать его..

Это позволяет мне создать изолированный контейнер с помощью следующей команды

lxc-create -n test01 -t /usr/local/share/templates/lxc-centos -dir=/home/images/lxc/test01

, но не может знать фактическое выделенное пространство для контейнера.
Я застрял с этим шагом.

Буду признателен за любую оказанную помощь.

2 ответа

Ниже приведен пример того, как можно изменить размер существующего образа контейнера LXC с 30 ГБ до 40 ГБ, а также изменить размер пула носителей с 30 ГБ до 40 ГБ.

      # ls -latrh /var/lib/lxd/disks/default.img 
-rw------- 1 root root 30G Sep 15 12:54 /var/lib/lxd/disks/default.img
# qemu-img info /var/lib/lxd/disks/default.img 
image: /var/lib/lxd/disks/default.img
file format: raw
virtual size: 30 GiB (32212254720 bytes)
disk size: 11.7 GiB
Child node '/file':
    filename: /var/lib/lxd/disks/default.img
    protocol type: file
    file length: 30 GiB (32212254720 bytes)
    disk size: 11.7 GiB
#
# qemu-img resize /var/lib/lxd/disks/default.img 40G
WARNING: Image format was not specified for '/var/lib/lxd/disks/default.img' and probing guessed raw.
         Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
         Specify the 'raw' format explicitly to remove the restrictions.
# qemu-img resize -f raw /var/lib/lxd/disks/default.img 40G
Image resized.
# qemu-img info /var/lib/lxd/disks/default.img 
image: /var/lib/lxd/disks/default.img
file format: raw
virtual size: 40 GiB (42949672960 bytes)
disk size: 11.7 GiB
Child node '/file':
    filename: /var/lib/lxd/disks/default.img
    protocol type: file
    file length: 40 GiB (42949672960 bytes)
    disk size: 11.7 GiB
#
# ls -latrh /var/lib/lxd/disks/default.img 
-rw------- 1 root root 40G Sep 15 13:00 /var/lib/lxd/disks/default.img
#

# lxc storage list
+---------+--------+--------------------------------+-------------+---------+---------+
|  NAME   | DRIVER |             SOURCE             | DESCRIPTION | USED BY |  STATE  |
+---------+--------+--------------------------------+-------------+---------+---------+
| default | btrfs  | /var/lib/lxd/disks/default.img |             | 3       | CREATED |
+---------+--------+--------------------------------+-------------+---------+---------+
# lxc storage info default
info:
  description: ""
  driver: btrfs
  name: default
  space used: 11.95GiB
  total space: 30.00GiB
used by:
  images:
  - 70afa800b43588184693c38eafb46c6e3484c561fe901150c29615608ecfe504
  instances:
  - bionic
  profiles:
  - default
#

$ lxc storage get default size
30GiB
$ lxc storage set default size 40GB
$ lxc storage get default size
40GB
$
$ lxc storage info default
info:
  description: ""
  driver: btrfs
  name: default
  space used: 11.95GiB
  total space: 30.00GiB
used by:
  images:
  - 70afa800b43588184693c38eafb46c6e3484c561fe901150c29615608ecfe504
  instances:
  - bionic
  profiles:
  - default
$ lxc profile list
+---------+---------------------+---------+
|  NAME   |     DESCRIPTION     | USED BY |
+---------+---------------------+---------+
| default | Default LXD profile | 1       |
+---------+---------------------+---------+
$

$ lxc profile show default
config:
  limits.cpu: "2"
  limits.memory: 4GB
description: Default LXD profile
devices:
  eth0:
    name: eth0
    network: lxdbr0
    type: nic
  root:
    path: /
    pool: default
    size: 50GB
    type: disk
name: default
used_by:
- /1.0/instances/bionic
$ lxc storage info default
info:
  description: ""
  driver: btrfs
  name: default
  space used: 11.95GiB
  total space: 30.00GiB
used by:
  images:
  - 70afa800b43588184693c38eafb46c6e3484c561fe901150c29615608ecfe504
  instances:
  - bionic
  profiles:
  - default
$ 
$ lxc storage edit default
$ lxc start bionic
$ lxc exec bionic -- sudo -i
root@bionic:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.8G     0  1.8G   0% /dev
tmpfs           367M  692K  366M   1% /run
/dev/sda2        45G  9.5G   36G  22% /
tmpfs           1.8G     0  1.8G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           1.8G     0  1.8G   0% /sys/fs/cgroup
tmpfs            50M   18M   33M  36% /run/incus_agent
/dev/sda1        99M  4.0M   95M   4% /boot/efi
tmpfs           367M     0  367M   0% /run/user/1001
root@bionic:~#

Мне удалось ограничить пространство для контейнера с помощью следующей команды

      lxc-create -B loop -t debian -n mydebianvm --fssize=5G -- -r buster

Мне пришлось прочитать справочную страницу несколько раз, чтобы понять, как использовать цикл. Я считаю, что у вас создается впечатление, что вы можете использовать lvm, но у меня это тоже не сработало.

Я изо всех сил пытаюсь понять, как расширить созданный диск. Я думаю, что это больше работает с расширением дискового пула, чем с самим контейнером. Документацию lxc найти нелегко, не LXD, а LXC. Весь онлайн-поиск в основном вращается вокруг linuxcontainers , но они больше говорят о LXD, который является службой поверх LXC.

Вот инструкция , которая мне показалась полезной.

Другие вопросы по тегам