调整 LXD 存储池大小的正确姿势
前言
由于历史遗留问题,当初安装系统的时候选择的文件系统不是 btrfs,后来开始用 LXD 的时候,创建的存储池(storage pool)选择了 btrfs loop 设备,且默认的存储池容量偏小.如果存储池所在分区为 btrfs 的话,那就可以直接创建子卷来使用,存储池容量直接与存储池所在分区的大小共享.简单的自然是直接根分区就用的 btrfs,然后直接创建默认的存储池就可以直接共用根分区的了.如果有多余的空闲的硬盘,也可以将该硬盘直接用作 LXD 的存储池,文件系统直接用 btrfs 就很合适了.使用独立的硬盘来作为 LXD 的存储池也是 LXD 官方文档里所建议的,可以用于生产环境的.不过说这些都来不及了,不想重装系统,那就只好想办法调整存储池的大小了.
How
其实很简单,首先列出所有的存储池:
lxc storage list
+---------+-------------+--------+--------------------------------+---------+
| NAME | DESCRIPTION | DRIVER | SOURCE | USED BY |
+---------+-------------+--------+--------------------------------+---------+
| default | | btrfs | /var/lib/lxd/disks/default.img | 8 |
+---------+-------------+--------+--------------------------------+---------+
可以看到有一个默认的存储池 default
.我们看看他的信息:
lxc storage show default
config:
size: 128GB
source: /var/lib/lxd/disks/default.img
description: ""
name: default
driver: btrfs
used_by:
- /1.0/containers/demo-container
- /1.0/images/86e50c7d02c9fca2e620e0ac41117e9b99c35779c3595c22c624c6f0b9b8f3e1
- /1.0/images/9d77238fd2ec6a416329c1a86d257fbf1c47d1fafbc7a144b14aa3300432630c
- /1.0/profiles/default
status: Created
locations:
- none
可以看到我们创建该存储池的时候指定其大小为 128G.还有另外一个命令查看:
lxc storage info default
info:
description: ""
driver: btrfs
name: default
space used: 39.58GB
total space: 128.00GB
used by:
containers:
- demo-container
images:
- 86e50c7d02c9fca2e620e0ac41117e9b99c35779c3595c22c624c6f0b9b8f3e1
- 9d77238fd2ec6a416329c1a86d257fbf1c47d1fafbc7a144b14aa3300432630c
profiles:
- default
这两个命令的区别在于 show
命令显示的 size
是创建时候的容量,无法修改的;info
命令则显示其当前的状态.
我们给这个存储池增加 128G 的容量:
truncate -s +24G /var/lib/lxd/disks/default.img
reboot
btrfs filesystem resize max /var/lib/lxd/storage-pools/default
reboot
如果你调整的是其他存储池的容量,注意修改命令中的对应路径.最后,我们检查一下其容量:
lxc storage info default
info:
description: ""
driver: btrfs
name: default
space used: 39.58GB
total space: 255.52GB
used by:
containers:
- demo-container
images:
- 86e50c7d02c9fca2e620e0ac41117e9b99c35779c3595c22c624c6f0b9b8f3e1
- 9d77238fd2ec6a416329c1a86d257fbf1c47d1fafbc7a144b14aa3300432630c
profiles:
- default