Bir RockyLinux sunucum vardı. Varsayılan kurulumda disk bölümlendirmesini bırakarak gitmenin cezasını 1 TB'lık bir diskte 900 GB home bölümü ve 70 GB'lık bir root bölümü oluşturması şeklinde ödedim. Root doldu. Home'u küçültüp, root'a yer açmak gerek. Ama bütün Redhat, CentOS ve RockyLinux kurulumlarında varsayılan dosya sistemi XFS olduğu için ve XFS de küçültme işlemini desteklemediği için bu disk bölümünü silip tekrar oluşturmak zorundayım. Bu amaçla sanal makineyi ISO disk kalıbı ile açmak (ilk ekranda "Troubleshooting", sonra "Rescue a Rocky Linux system", sonrasında da 3'e basarak "Skip to shell" diyerek) bir seçenek. Ama LVM ve XFS üzerinde çalışırken diski unmount etmemize gerek yok. /home disk bölümü içine erişen bir uygulama yoksa (ya da onu geçici olarak durdurabiliyorsak) sunucuyu root ile açıp işlemlerimize devam edebiliriz.
Başlamadan önce sunucumuzda xfsdump ve xfsprogs paketlerinin yüklü olduğunu doğrulamak gerek:
# dnf list installed xfsdump xfsprogs
Her şeyin durumunu görebilmek için mevcut volume gruop (VG) yapısını listeleyerek başlayalım:
# vgs
VG #PV #LV #SN VSize VFree
rl 1 3 0 <1022.41G 0
Bundan sonra da mantıksal bölümleri (logical volume, LV) inceleyelim:
# lvs
LV VG LSize
home rl 948.46g
root rl 70.00g
swap rl <3.95g
İlk iş, home'un yedeğini almak. Bunun için xfs araçlarından xfsdump ve xfsrestore'u kullanabiliriz. Bu aşamada /home mount edilmiş olmalı.
# mkdir /backup
# xfsdump -l 0 -f /backup/home_backup.dump /home
Sonrasında .dump dosyasının durumunu kontrol etmek için
# ls -lh
# xfsdump -I
# xfsrestore -t -f /backup/home_backup.dump
kullanılabilir. Bu aşamada artık /dev/rl/home'u silip yeniden oluşturabiliriz. Silmeden önce unmount etmeliyiz.
# umount /home
Eğer /home bağlantı noktasının meşgul olduğuna dair bir hata ile karşılaşırsak lsof /home ile bakabilir, PID'leri kontrol ettikten sonra kill -9 <PID> ile sonlandırıp tekrar unmount etmeyi deneyebiliriz.
Şimdi home mantıksal bölümünü silebiliriz:
# lvremove /dev/rl/home
home'u sildikten sonra VG içinde boş yer açılmış olmalı:
# vgs
VG #PV #LV #SN VSize VFree
rl 1 2 0 1022.41g 948.46g
#LV bir azaldı, VFree alanı da sildiğimiz mantıksal bölüm boyutunca arttı. Şimdi tekrar, daha küçük bir home mantıksal birimi oluşturalım. 20G yeter de artar bile.
# lvcreate -L 20G -n home rl
Bu komut sonunda
WARNING: xfs signature detected on /dev/rl/home at offset 0 Wipe it? [y/n]:
gibi bir uyarı verdi. Oluşturduğumuz yerde eski bir xfs bölümü kalıntısı bulmuş. Bu bilgiyi kullanabileceğim bir yer bulamadım. Sanıyorum veri kurtarma teknikleri ile yanlışlıkla silinmiş bir mantıksal bölümü geri getirmek için. Bizim amacımız bu değil; y'ye basarak işleme devam edebiliriz. Sonrasında sırasıyla yeni oluşturulan bölümü biçimlendirip, mount edip, yedekten geri yükleyeceğiz:
# mkfs.xfs /dev/rl/home
# mount /dev/rl/home /home
# xfsrestore -f /backup/home_backup.dump /home
Bu sayede çok ilginç bir şey daha öğrendim; eğer bir sunucu için /home klasörü ve içindekiler, bir kişisel bilgisayarın /home klasörüne kıyasla daha vazgeçilebilir ise veya yedeklemeyi unuttuysak /home klasörümüzü ve diğer birkaç varsayılan dosyayı yaratmak için şurada bahsedildiği gibi aşağıdaki komutu kullanabiliriz:
# mkhomedir_helper kullanici_adi
Nihayet /dev/rl/root mantıksal birimini genişletebiliriz. Önce mevcut VG'deki boş yeri kontrol edelim:
# vgs
VG #PV #LV #SN VSize VFree
rl 1 3 0 1022.41g 928.46g
Evet, 928 GB yer hala mevcut. root mantıksal birimini VG içindeki tüm boş alanı kapsayacak şekilde (-l +100%FREE) genişletelim:
# lvextend -l +100%FREE /dev/rl/root
LV'nin genişlediğini doğrulayalım:
# vgs
VG #PV #LV #SN VSize VFree
rl 1 3 0 1022.41g 0
ve
# lvs
LV VG LSize
home rl 20.00g
root rl 998.46g
swap rl <3.95g
LV genişledi, ama içindeki xfs dosya sisteminin boyutu hala eski boyutlarında:
#df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/rl-root xfs 70G 50G 20G 72% /
/dev/mapper/rl-home xfs 20G 176M 20G 1% /home
/dev/sda1 vfat 599M 7.0M 592M 2% /boot/efi
/dev/sda2 xfs 1014M 316M 699M 32% /boot
Sıra root mantıksal biriminin içindeki xfs dosya sistemini genişletmeye geldi:
# xfs_growfs /dev/rl/root
Nihayet o da genişledi
# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/rl-root xfs 999G 57G 942G 72% /
Eğer herşey tamamsa /backup/home_backup.dump'ı silebiliriz.