Di server intranet saya, saya memiliki partisi 100,00 GiB / dev / sda5, yang saya gunakan sebagai volume fisik untuk lvm2.
- Ini satu-satunya volume fisik dalam grup volume saya vg01.
- vg01 saat ini berisi satu volume logis lv01, menggunakan 100,00 GiB penuh - yah, sebenarnya 99,99 GiB karena beberapa pembulatan (di situlah masalahnya dimulai).
- lv01 berisi sistem file ext3, menggunakan seluruh ruang.
Saya ingin mengurangi lv01 menjadi sekitar 97 GiB, jadi saya dapat membuat lv02 dengan kira-kira. 3 GiB (saya membutuhkannya untuk mengambil snapshot lvm).
Apa yang saya lakukan sejauh ini:
e2fsck -f /dev/mapper/vg01-lv01
resize2fs /dev/mapper/vg01-lv01 97G
Ini telah bekerja dengan baik. Tapi sekarang aku harus lari
lvreduce --size ? /dev/mapper/vg01-lv01
Dan saya tidak yakin, nilai pasti mana yang harus saya tentukan. The lvreduce
man page memperingatkan secara eksplisit, bahwa ukuran yang dihasilkan tidak harus lebih kecil dari sistem file. Saya juga tidak ingin membuatnya lebih besar dari yang seharusnya. Tetapi sekarang saya memiliki nomor yang berbeda:
- Saya tentukan
97G
dalam resize2fs. df -h
mengatakan, itu 96 G.df
mengatakan, ini 100115936 1K-blok.- Lvdisplay (tentu saja) masih melaporkan 99,99 GiB untuk volume logis.
Untuk apa saya harus menentukan lvreduce
?
Edit:
Jawaban yang saat ini diterima memberikan solusi yang bagus. Namun, untuk mengintegrasikan hal-hal seperti itu dalam skrip yang solid dll, saya biasanya lebih suka menggunakan pengukuran yang tepat. Atau mungkin sudah ada skrip atau alat (!) Yang andal yang melakukan seluruh prosedur pengubahan ukuran dalam satu langkah?
resize2fs
untuk mengurangi filesystem ke 90GiB atau lebih, dan kemudian muck sekitar dengan argumen untuklvreduce
(diikuti olehresize2fs
) untuk melihat apa yang paling berhasil.Jawaban:
Dalam pengalaman saya, LVM dan resize2fs memiliki ide yang sama tentang apa arti "97G", jadi menentukan ukuran yang sama di kedua tempat harus baik-baik saja. Namun, saya paranoid, dan sedapat mungkin selalu menggunakan strategi yang disarankan oleh larsks di komentar pertanyaan dan diubah ukurannya menjadi satu GB lebih kecil dari yang saya inginkan, lakukan lvresize ke ukuran yang saya inginkan, dan kemudian jalankan kembali resize2fs (tanpa size) untuk membiarkannya mengembang kembali untuk mengisi seluruh LV.
sumber
Saya pikir ini paling baik dilakukan dengan menggunakan opsi --resizefs untuk lvreduce / lvresize:
Memang, itu tidak membantu Anda sekarang , tetapi mungkin di masa depan.
sumber