====== 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]]