PowerScale: Kan geen bestanden verwijderen wanneer harde quota worden overschreden via NFS met foutmelding 'Geen ruimte meer op apparaat'
Summary: NFS-clients kunnen geen data verwijderen als het harde quotum wordt overschreden met de foutmelding 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
In pakketopnamen, NFS3ERR_NOSPC is te zien:
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
Het bestand is in gebruik, waardoor een .nfs-bestand wordt weggeschreven totdat het bestand niet meer in gebruik is. Omdat het quotum wordt overschreden, kan het .nfs-bestand niet worden geschreven. Dit wordt beschouwd als een domme hernoeming en is iets wat de client doet, niet de 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
Meestal actief lsof Op de client wordt aangegeven met welk proces het bestand is geopend. In ten minste één geval creëerde CrowdStrike op de client echter de .nfs bestand maar verhinderd lsof om het als open te laten zien. Door CrowdStrike tijdelijk uit te schakelen, kon het bestand worden verwijderd. Als de .nfs Bestand wordt weergegeven in pakketopnamen, wat bevestigt dat een proces aan de clientzijde het bestand gebruikt, waardoor wordt voorkomen dat het wordt verwijderd wanneer een hard quotum wordt overschreden.
[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]#