带LVM后备存储的LXD实现磁盘配额

时间:2015-10-09 19:13:27

标签: lxc lvm lxd

我从LXD storage specs看到LVM可以用作后备存储。我之前设法让LVM与LXC合作。这非常 令人愉悦,因为它允许配额式控制磁盘消耗。

如何使用LXD实现这一目标?

根据我的理解,storage.lvm_vg_name必须指向我的音量 组。我通过创建配置文件为容器设置了这个,并且 将该配置文件应用于容器。整个配置文件配置 看起来像这样:

name: my-profile-name
config:
  raw.lxc: |
    storage.lvm_vg_name = lxc-volume-group
    lxc.start.auto = 1
    lxc.arch = amd64
    lxc.network.type = veth
    lxc.network.link = lxcbr0
    lxc.network.flags = up
    lxc.network.hwaddr = 00:16:3e:xx:xx:xx
    lxc.cgroup.cpu.shares = 1
    lxc.cgroup.memory.limit_in_bytes = 76895572
  security.privileged: "false"
devices: {}

卷组应该可用并且正常工作 主机框上的pvdisplay:

  --- Physical volume ---
  PV Name               /dev/sdc5
  VG Name               lxc-volume-group
  PV Size               21.87 GiB / not usable 3.97 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              5599
  Free PE               901
  Allocated PE          4698
  PV UUID               what-ever

然而,在应用配置文件并启动容器后,它 似乎正在使用文件后备存储:

me@my-box:~# ls /var/lib/lxd/containers/container-name/rootfs/
bin  boot  dev  etc  home  lib  lib64  lost+found  media  mnt  opt
proc  root  run  sbin  srv  sys  tmp  usr  var

我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果对他人有用,我会回答我自己的问题。

根据lxc-users邮件的权威答案,列表:

  

" storage.lvm_vg_name不是每容器配置设置,它是' s   整个守护进程。

     

使用' lxc config set storage.lvm_vg_name myvolgroup'进行设置,   然后lxd将使用卷组作为每个新图像的存储空间   之后创建的容器。"

作为一个非常粗略的总结,我使用vgcreate创建一个卷组,然后lvcreate在该组中创建一个卷。紧随其后的是lxc config set storage.lvm_vg_namelxc config set storage.lvm_thinpool_name

似乎有效。然而LXD目前对我的口味感觉有点太不成熟,我现在要使用普通的LXC。我期待在几个月内再次尝试LXD。