马春杰杰 Exit Reader Mode

重启服务器之后,Autodl的目录限额失效,附解决方案

目前是由以下情况导致的:

1、同一个磁盘,被挂载到多个路径

比如autodl-202-2这个容器/dev/sda是挂载到宿主机的/autodl2下,而/autodl2则被挂载到autodl-202-2容器的多个路径:/disk/autodl-share-tmp

(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则启用了,可以通过下面这个命令来确认:

root@autodl-202-2:~# sudo quotaon /dev/sda
quotaon: using . on /dev/sda [/autodl-share-tmp]: File exists

恢复方法也比较简单,在宿主机上先卸载/autodl-share-tmp再挂载即可:

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,所以自然无法启用限额。

(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即可。

(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:~$