====== 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
===== 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|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|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/|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 ====
[[https://forums.opensuse.org/showthread.php/523354-High-CPU-load-related-to-btrfs-causes-lock-up|https://forums.opensuse.org/showthread.php/523354-High-CPU-load-related-to-btrfs-causes-lock-up]]
[[https://bugzilla.opensuse.org/show_bug.cgi?id=1017461|https://bugzilla.opensuse.org/show_bug.cgi?id=1017461]]
====== 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|http://docs.cray.com/books/S-2377-22/html-S-2377-22/z1029470303.html]] und [[http://xfs.org/index.php/XFS_FAQ|http://xfs.org/index.php/XFS_FAQ]]