Dateisysteme
Plattenplatz ermitteln
Filtern auf ext4, was ist verfügbar?
root@tokoeka ~ # df -h -t ext4 --total Filesystem Size Used Avail Use% Mounted on /dev/mapper/pve-root 196G 39G 148G 21% / /dev/md0 486M 400M 57M 88% /boot /dev/mapper/pve-data 3.0T 560G 2.3T 20% /mnt/data /dev/mapper/pve-backup 414G 40K 393G 1% /mnt/backup total 3.6T 598G 2.8T 18% -
Filtern auf ext4, was wird genutzt?
root@tokoeka ~ # df -h -t ext4 --output=used
Used
39G
400M
560G
40K
598G
Platte voll - grösste Dateien/Verzeichnisse finden
{ find ocdata/ -type f -name "*.*" -printf "%s+"; echo 0; } | bc | numfmt --to=si
du -hsx -- * | sort -rh | head -10
Danach die Dateien in eine Datei kopieren und gezielt löschen
xargs rm -r <delete.txt
Out of inodes
Eine Platte kann auch wegen wegen ausgegangener inodes voll sein "no space left on device". Dann zuerst inode Status prüfen mit df -i. Danach auflisten, welches Verzeichnis die meisten Inodes belegt:
$ for i in /*; do echo $i; find $i |wc -l; done
Siehe https://www.ivankuznetsov.com/2010/02/no-space-left-on-device-running-out-of-inodes.html
Wenn es zu viele Einzel-Dateien sind, kommt bei rm -rf eventuell dieser Fehler
-bash: /bin/rm: Die Argumentliste ist zu lang (Argument list too long
In diesem Fall diee Dateien einzeln finden und übergeben:
find
-
type
f -print0 |
xargs
-0
rm
Danach müsste alles wieder OK sein:
root@ruru:/mnt/data/log/letsencrypt# for i in /mnt/data/log/*; do echo $i; find $i |wc -l; done /mnt/data/log/apache2 1 /mnt/data/log/dokuwiki 1 /mnt/data/log/joomla 1 /mnt/data/log/letsencrypt 1 /mnt/data/log/owncloud 2 /mnt/data/log/roundcube 1
Access Control Lists ACL
siehe https://wiki.ubuntuusers.de/ACL#ACLs-fuer-Dateien-und-Verzeichnisse
setzen
setfacl -m u:hermann:rwx,g:hermann:r-x shared/win702/*.*
Settings lesen
root@server3:/srv/vm/shared/win702# getfacl /srv/vm/shared/win702 getfacl: Entferne führende '/' von absoluten Pfadnamen # file: srv/vm/shared/win702 # owner: hekneis # group: hekneis user::rwx group::r-x mask::r-x other::r-x default:user::rwx default:user:hekneis:rw- default:group::r-x default:group:hekneis:rw- default:mask::rwx default:other::r-x
BTRFS
Standard-Datei-System bei OpenSUSE und SLES
Platte läuft mit Snapshots voll
Die Grundeinstellungen stehen in /etc/snapper/configs/root. Empfehlungen siehe http://www.nrtm.org/index.php/2012/03/13/the-joys-of-btrfs-and-opensuse-or-no-space-left-on-device/comment-page-1/
Im akuten Fall:
/etc/cron.daily/suse.de-snapper
und
/etc/cron.weekly/btrfs-balance.sh
Platte vergrössern
Bei btrfs kann man zwei Partitionen zu einem gemeinsamen Filesystem zusammenkleben, auch wenn die zweite Partition am Ende einer Partitionstabelle liegt.
Neue Partition anlegen und btrfs erzeugen
mkfs.brfs /dev/[neues device]
Danach den scsi Bus scannen:
rescan-scsi-bus.sh -a
Neue Partition zum btrfs Wurzelverzeichnis hinzufügen.
sudo btrfs device add /dev/sda6 /
btrfs balance verteilt die Metadaten gleichmässig auf beiden Partitionen
sudo btrfs balance start /
Nach einem Reboot ist das btrfs root um den Platz der neuen Partition vergrössert.
btrfs Maintenance
There is btrfsmaintenance package that should be installed by default that provides cron script. Somewhat interesting implementation is, these cron scripts are not installed directly but there is a service that does it. And *this* service is disabled by default
systemctl enable btrfsmaintenance-refresh
systemctl start btrfsmaintenance-refresh
and check /etc/cron.{daily,weekly,monthly}
It is configurable in /etc/sysconfig/btrfsmaintenance
I enabled it now (with the default config), which created cron.weekly/btrfs-balance.sh and cron.monthly/btrfs-scrub.sh symlinks.
Alte Snapshots auf einen Satz löschen:
for i in `seq 2309 2605`; do snapper delete $i; done
Weitere BTRFS Kommandos
Füllgrad feststellen:
btrfs filesystem df /
Snapshots auflisten
snapper list
Snapshot Diffs anzeigen
snapper diff 71..72
Bestimmten Snapshot löschen
snapper delete 65
Älteren Snapshot aktivieren
snapper rollback [ID]
BTRFS Dateisystem reparieren
fsck.btrfs /dev/…
Hohe Last durch BTRFS quota
Software RAID Reparatur
Ablauf bei Plattentausch
RAID Array anzeigen
mdadm –detail /dev/md0
und
cat /proc/mdstat
Platte aus Array entfernen
mdadm /dev/md2 –remove /dev/sdk1
Ganzes Array stoppen
mdadm –manage /dev/md0 –stop
XFS
XFS Fehler können unter OpenSuse zum emergency mode führen. Fix:
umount /dev/sda3 xfs_repair
Wenn das xfs Log überschrieben werden kann
xfs_repair -L /dev/sda1
Doku: http://docs.cray.com/books/S-2377-22/html-S-2377-22/z1029470303.html und http://xfs.org/index.php/XFS_FAQ