PowerScale: Nelze odstranit soubory při překročení pevné kvóty přes NFS s chybou "No space left on device"
Summary: Klienti NFS nemohou odstranit data, pokud je překročena pevná kvóta a zobrazí se chyba "No space left on device".
Symptoms
# isi quota quotas list Type AppliesTo Path Snap Hard Soft Adv Used Efficiency ----------------------------------------------------------------------------- default-user DEFAULT /ifs/nfs No 100.00M - - 0.00 - user root /ifs/nfs No 100.00M - - 195.00M 0.50 : 1 <<<<<<< Exceeded user quota ----------------------------------------------------------------------------- Total: 2 [root@centos tmp]# rm -f testfile2 rm: cannot remove ‘testfile2’: No space left on device
Při zachytávání paketů NFS3ERR_NOSPC je vidět:
NFS 266 V3 RENAME Call (Reply In 121), From DH: 0x73953be7/testfile123 To DH: 0x73953be7/.nfs000000010001329500000009 NFS 162 V3 RENAME Reply (Call In 120) Error: NFS3ERR_NOSPC
Cause
Soubor se používá, což způsobuje, že se do něj bude zapisovat soubor NFS, dokud se nepřestane používat. Protože je překročena kvóta, soubor NFS nelze zapsat. To je považováno za hloupé přejmenování a je to něco, co dělá klient, nikoli server.
NFS 266 V3 RENAME Call (Reply In 121), From DH: 0x73953be7/testfile123 To DH: 0x73953be7/.nfs000000010001329500000009 <<<<< can see Client tries to make a .nfs file And fails because the quota is exceeded NFS 162 V3 RENAME Reply (Call In 120) Error: NFS3ERR_NOSPC
Resolution
Obvykle běží lsof Na klientovi identifikuje, který proces má soubor otevřený. Alespoň v jednom případě však aplikace CrowdStrike na klientovi vytvořila .nfs soubor, ale zabráněno lsof aby se nezobrazoval jako otevřený. Dočasné vypnutí aplikace CrowdStrike umožnilo odebrání souboru. V případě, že se .nfs V zachytávání paketů se zobrazí soubor, který potvrzuje, že proces na straně klienta používá soubor, což zabraňuje jeho odstranění při překročení pevné kvóty.
[root@centos tmp]# lsof testfile123 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME tail 13992 root 3r REG 0,43 104857600 4337893434 testfile123 Once the process that has the file in use is stopped the file can then be removed [root@centos tmp]# rm -f testfile123 [root@centos tmp]#