PowerScale: Nie można usunąć plików w przypadku przekroczenia twardego limitu w NFS z błędem "Brak miejsca na urządzeniu"
Summary: Klienci NFS nie mogą usunąć danych, jeśli zostanie przekroczony twardy przydział i pojawi się błąd "Brak miejsca na urządzeniu".
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
W przechwytywaniu pakietów, NFS3ERR_NOSPC można zobaczyć:
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
Plik jest w użyciu, co powoduje, że plik .nfs jest zapisywany do momentu, gdy plik nie jest już używany. Ponieważ limit przydziału został przekroczony, nie można zapisać pliku .nfs. Jest to uważane za głupią zmianę nazwy i jest to coś, co robi klient, a nie serwer.
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
Zwykle działa lsof na kliencie określa, który proces ma otwarty plik. Jednak w co najmniej jednym przypadku CrowdStrike na kliencie utworzył .nfs plik, ale uniemożliwiony lsof od pokazywania go jako otwartego. Tymczasowe wyłączenie narzędzia CrowdStrike umożliwiło usunięcie pliku. Jeśli trzeba odzyskać .nfs Plik pojawia się w przechwytywaniu pakietów, co potwierdza, że proces po stronie klienta używa pliku, co zapobiega jego usunięciu w przypadku przekroczenia twardego przydziału.
[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]#