FS: XFS

XFS wurde bereits 1993 von Silicon Graphics für IRIX 5.3 vorgestellt, 2001 als OSS freigegeben und 2002 auf Linux portiert. Das 64-bittige Dateisystem darf rund 16’000 Petabyte gross werden, Dateien bis 8’000 Petabyte. In der Realität werden ab RHEL 6.8 mit dem Scalable File System Add-on XFS-Dateisystemgrössen von bis zu 300 TByte unterstützt. Dateinamen sind ebenfalls max. 255 Zeichen lang. Eine XFS-Partition muss mindestens 13 MB gross sein.

OverlayFS: wichtig ist hier, dass XFS mit „ftype=1“ formatiert wurde. Siehe https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/7.2_release_notes/technology-preview-file_systems

Dateisystem vergrössern

xfs_growfs /dev/$DISK
xfs_growfs /dev/$VG/$LV

Dateisystem prüfen und reparieren

Um zu prüfen, ob das Dateisystem in Ordnung ist, genügt:

dmesg | grep corrupt
dmesg | grep -i 'structure needs cleaning'

Ein erster Dry Run:

# no modify mode - should only scan the filesystem and indicate what repairs would have been made
xfs_repair -n /dev/sda

XFS reparieren:

  • Maschine (neu) starten.

  • Boot-Menü anhalten, gewünschte Kernel-Version wählen und e für „Edit“ drücken.

  • Nach der Zeile beginnend mit linux /vmlinuz..., linux16 /vmlinuz... oder linuxefi /vmlinuz... suchen.

  • Zeile mit rw init=/sysroot/bin/sh ergänzen. Anschliessend Ctrl + x drücken.

Jetzt:

umount /dev/mapper/centos-root
xfs_repair /dev/mapper/centos-root
xfs_repair /dev/vg_data/lv_data

Geht nicht? Allerletzte Möglichkeit: Log Zeroing mit xfs_repair -vL ... forcieren (siehe https://access.redhat.com/solutions/140543).

Quota

# Enable user, group and project quotas
echo '/dev/vdb /data xfs defaults,uquota,gquota,pquota 0 0'  >> /etc/fstab
mkdir -p /data
mount --verbose  /dev/vdb

# For block limits, a number with a s/b/k/m/g/t/p/e multiplication suffix as described in mkfs.xfs(8) is also accepted.
# From mkfs.xfs(8):
#    The following lists possible multiplication suffixes:
#        s - multiply by sector size (default = 512, see -s option below).
#        b - multiply by filesystem block size (default = 4K, see -b option below).
#        k - multiply by one kilobyte (1,024 bytes).
#        m - multiply by one megabyte (1,048,576 bytes).
#        g - multiply by one gigabyte (1,073,741,824 bytes).
#        t - multiply by one terabyte (1,099,511,627,776 bytes).
#        p - multiply by one petabyte (1,024 terabytes).
#        e - multiply by one exabyte (1,048,576 terabytes).

# User-Quota (Block-Limit) setzen
xfs_quota -x -c 'limit -u bsoft=500m bhard=800m myuser' /data

# Gruppen-Quota (Block-Limit) setzen
xfs_quota -x -c 'limit -g bsoft=5000m bhard=6000m mygroup' /data

# Projekt (Directory-Tree) initialisieren
echo '11:/data/myproject' >> /etc/projects
echo 'myproject:11' >> /etc/projid
xfs_quota -x -c 'project -s myproject' /data

# Projekt-Quota (Block-Limit) setzen
xfs_quota -x -c 'limit -p bsoft=1g bhard=2g myproject' /data

# Grace-Period / Timer
#  -g -- modify group quota timer
#  -p -- modify project quota timer
#  -u -- modify user quota timer
# From xfs_quota(8):
#   [...] units of 'minutes', 'hours', 'days', and 'weeks' are also understood (as are their abbreviations 'm', 'h', 'd', and 'w')
xfs_quota -x -c 'timer -u 10minutes myuser' /data
xfs_quota -x -c 'timer -g 12h mygroup' /data
xfs_quota -x -c 'timer -p 4weeks myproject' /data


# Aktuelle Quota anzeigen
# -g -- display group quota information
# -p -- display project quota information
# -u -- display user quota information
# -h -- report in a human-readable format
xfs_quota -c 'quota -h -u myuser' /data
xfs_quota -c 'quota -h -g mygroup' /data
xfs_quota -c 'quota -h -p myproject' /data

# Report / Übersicht anzeigen
# -h -- report in a human-readable format
xfs_quota -x -c 'report -h' /data

Built on 2024-11-18