PowerScale: Tiedostoja ei voi poistaa, kun kova kiintiö ylittyy NFS:n kautta ja näyttöön tulee virhe "Laitteessa ei ole enää tilaa"
Summary: NFS-asiakkaat eivät voi poistaa tietoja, jos kova kiintiö ylittyy virheellä "Laitteessa ei ole enää tilaa".
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
Pakettikaappauksissa, NFS3ERR_NOSPC voidaan nähdä:
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
Tiedosto on käytössä, mikä aiheuttaa .nfs-tiedoston kirjoittamisen, kunnes tiedosto ei ole enää käytössä. Koska kiintiö on ylitetty, .nfs-tiedoston kirjoittaminen epäonnistuu. Tätä pidetään typeränä uudelleennimeämisenä, ja sen tekee asiakas, ei palvelin.
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
Yleensä käynnissä lsof asiakasohjelmassa tunnistetaan, missä prosessissa tiedosto on avoinna. Kuitenkin ainakin yhdessä tapauksessa CrowdStrike asiakkaalle loi .nfs tiedosto, mutta estetty lsof näyttämästä sitä avoimena. CrowdStriken väliaikainen poistaminen käytöstä mahdollisti tiedoston poistamisen. Jos .nfs Tiedosto näkyy pakettisieppauksissa, mikä vahvistaa, että asiakaspuolen prosessi käyttää tiedostoa, mikä estää sen poistamisen, kun kiinteä kiintiö ylitetään.
[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]#