目前是由以下情况导致的:
1、同一个磁盘,被挂载到多个路径
比如autodl-202-2
这个容器,/dev/sda
是挂载到宿主机的/autodl2
下,而/autodl2
则被挂载到autodl-202-2
容器的多个路径:/disk
和/autodl-share-tmp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
(base) mcj@SDAI202-PowerEdge-T630:~$ lxc config device show autodl-202-2 gpu: type: gpu sda: path: /dev/sda type: unix-block sharedisk: path: /disk source: /autodl2/lxd-autodl2 type: disk tmpdisk: path: /autodl-share-tmp source: /autodl2/autodl-share-tmp type: disk |
这就会导致一个问题,就是project quota
同时只会被其中一个路径启用,所以我们期望的/disk
未能启用,而/autodl-share-tmp
则启用了,可以通过下面这个命令来确认:
1 2 |
root@autodl-202-2:~# sudo quotaon /dev/sda quotaon: using . on /dev/sda [/autodl-share-tmp]: File exists |
恢复方法也比较简单,在宿主机上先卸载/autodl-share-tmp
再挂载即可:
1 2 |
lxc config device remove autodl-202-2 tmpdisk lxc config device add autodl-202-2 tmpdisk disk source=/autodl2/autodl-share-tmp path=/autodl-share-tmp |
2、unix-block挂载的磁盘错误
这种情况比价少见,多见于服务器新增磁盘的情况。比如我们今天就是新增了一块磁盘,结果导致原本的/disk
是/dev/sdc
,结果变成了/dev/sdd
,所以自然无法启用限额。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
(base) mcj@SDAI202-PowerEdge-T630:~$ lxc config device show autodl-202-4 gpu: type: gpu sdc: path: /dev/sdc type: unix-block sharedisk: path: /disk source: /disk/lxd-autodl4 type: disk tmpdisk: path: /autodl-share-tmp source: /autodl2/autodl-share-tmp type: disk (base) mcj@SDAI202-PowerEdge-T630:~$ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 26G 3.5M 26G 1% /run /dev/sdc2 187G 75G 103G 43% / tmpfs 126G 0 126G 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock efivarfs 304K 214K 85K 72% /sys/firmware/efi/efivars /dev/sdc3 691G 544G 112G 83% /home /dev/sdc1 487M 6.1M 480M 2% /boot/efi /dev/sdd 3.6T 3.2T 252G 93% /disk /dev/sde1 7.3T 5.9T 1006G 86% /disk1 /dev/sda 5.5T 942G 4.3T 18% /autodl2 tmpfs 1.0M 0 1.0M 0% /var/snap/lxd/common/ns tmpfs 26G 60K 26G 1% /run/user/1000 tmpfs 26G 64K 26G 1% /run/user/1017 tmpfs 26G 68K 26G 1% /run/user/1013 tmpfs 26G 64K 26G 1% /run/user/1010 |
这种情况恢复起来也很简单,只需要先卸载sdc
,再挂载sdd
即可。
1 2 3 4 5 6 7 |
(base) mcj@SDAI202-PowerEdge-T630:~$ lxc config device remove autodl-202-4 sdc Device sdc removed from autodl-202-4 (base) mcj@SDAI202-PowerEdge-T630:~$ lxc config device add autodl-202-4 sdd unix-block path=/dev/sdd Device sdd added to autodl-202-4 (base) mcj@SDAI202-PowerEdge-T630:~$ lxc exec autodl-202-4 -- quotaon -Ppv /disk project quota on /disk (/dev/sdd) is on (enforced) (base) mcj@SDAI202-PowerEdge-T630:~$ |