KVM Bagaimana cara menambah / mengurangi ukuran disk mesin virtual?

Pada artikel ini kita akan berbicara tentang mengubah ukuran disk dari mesin virtual KVM, pertimbangkan format disk virtual yang digunakan. Kami akan menunjukkan cara meningkatkan disk mesin virtual dengan benar di hypervisor KVM di Linux tanpa kehilangan data, dan juga membahas opsi untuk mengurangi ukuran disk.

Konten:

  • KVM Virtual Machine Drive Meningkatkan
  • Cara mengurangi ukuran disk virtual di KVM?

KVM Virtual Machine Drive Meningkatkan

Ekspansi disk virtual KVM

Agar dapat bekerja dengan disk, mesin virtual harus dimatikan, jika tidak kita tidak akan bisa melakukan apa-apa. Pertimbangkan contoh dengan penambahan disk yang ukurannya semula 20GB.

Untuk melihat parameter disk mesin virtual KVM, gunakan perintah:

qemu-img info / drive_path

Output dari perintah akan menjadi seperti ini:

Kami melihat bahwa kami memiliki dua bidang yang menunjukkan ukuran, ini adalah virtual_size dan disk_size:

  • virtual_size - ukuran disk virtual yang ditentukan saat membuat atau memperluas disk (dalam contoh ini, ukuran disk maksimum adalah 20 GB);
  • disk_size - ukuran file disk saat ini, mis. berapa banyak ruang disk saat ini ditempati di server fisik (hanya berlaku untuk format qcow). Dalam contoh kami, disk virtual hanya membutuhkan penyimpanan 1,6 GB.

Dan segera tentang format. Saya sarankan menggunakan format disk qcow2 daripada mentah ketika membuat mesin virtual di KVM. Nanti saya akan jelaskan kenapa.

Langkah selanjutnya adalah memperluas disk mesin virtual sebesar 5Gb (untuk ekspansi disk yang benar, mesin virtual seharusnya tidak memiliki snapshot!).
# qemu-img mengubah ukuran / jalur drive + 5G

Gambar diubah ukurannya.

Jika kami segera memeriksa output informasi tentang disk image, kami akan melihat bahwa itu telah berkembang:

# qemu-img info / drive_path

gambar: / drive_drive format file path: qcow2 ukuran virtual: 25G (26843545600 bytes) ukuran disk: 1.6G cluster_size: 65536 Format informasi spesifik: compat: 0.10 bit hitung ulang: 16 

Kami melakukan bagian dari pekerjaan, tetapi juga membutuhkan kerja dari mesin virtual di OS tamu. Selanjutnya, kami menunjukkan cara meningkatkan ukuran disk di CentOS 7 guest dan Windows Server 2012..

Jika Anda berencana untuk menambahkan disk virtual tambahan untuk VM di hypervisor KVM, qemu-img dan virsh digunakan.

Ekspansi partisi dalam mesin virtual Linux CentOS

Setelah memperluas drive dari sisi server, Anda perlu memulai mesin virtual dan menghubungkannya melalui ssh. Semua pekerjaan akan dilakukan menggunakan utilitas manajemen partisi hard drive. fdisk.

Setelah terhubung ke server, kami memeriksa ketersediaan tempat kami yang terhubung:

df-h
fdisk -l

Tangkapan layar menunjukkan bahwa bagian / dev / vda2 berukuran 20Gb, dan kami memiliki lebih banyak ruang disk.

Mari perbaiki momen ini dan perluas bagian / dev / vda2 ke ukuran maksimum:

# fdisk / dev / vda

Selamat datang di fdisk (util-linux 2.23.2). Perubahan hanya akan tinggal di memori, sampai Anda memutuskan untuk menulisnya. Hati-hati sebelum menggunakan perintah tulis. Command (m for help): d Nomor partisi (1,2, default 2): Partisi 2 dihapus Perintah (m untuk bantuan): n Jenis partisi: p primer (1 primer, 0 extended, 3 free) e extended Pilih (p default): hal Nomor partisi (2-4, default 2): Sektor pertama (1050624-52428799, default 1050624): Menggunakan nilai default 1050624 Sektor terakhir, + sektor atau + ukuran K, M, G (1050624-52428799, default 52428799): Menggunakan nilai default 52428799 Partisi 2 dari tipe Linux dan ukuran 24,5 GiB diatur Command (m for help): w Tabel partisi telah diubah! Memanggil ioctl () untuk membaca kembali tabel partisi. PERINGATAN: Membaca ulang tabel partisi gagal dengan kesalahan 16: Perangkat atau sumber daya sibuk. Kernel masih menggunakan tabel lama. Tabel baru akan digunakan pada reboot berikutnya atau setelah Anda menjalankan partprobe (8) atau kpartx (8) Menyinkronkan disk. 

Kemudian kita perlu me-restart mesin virtual dan menjalankan perintah untuk menerapkan ekstensi disk:

# xfs_growfs / dev / vda2

meta-data = / dev / vda2 isize = 512 agcount = 4, agsize = 1277888 blks = sectsz = 512 attr = 2, projid32bit = 1 = crc = 1 finobt = 0 spinodes = 0 data = bsize = 4096 blok = 5111552, imaxpct = 25 = sunit = 0 swidth = 0 blks penamaan = versi 2 bsize = 4096 ascii-ci = 0 ftype = 1 log = internal bsize = 4096 blok = 2560, versi = 2 = sectsz = 512 sunit = 0 blks, malas menghitung = 1 realtime = tidak ada extsz = 4096 blok = 0, rtextents = 0 blok data berubah dari 5111552 menjadi 6422272 

# df -h

Ukuran Filesystem yang Digunakan Penggunaan yang Tersedia% Dipasang di devtmpfs 485M 0 485M 0% / dev tmpfs 496M 0 496M 0% / dev / shm tmpfs 496M 6,6M 489M 2% / jalankan tmpfs 496M 0 496M 0% / sys / fs / cgroup / dev / vda2 25G 1.3G 24G 6% / / dev / vda1 488M 100M 353M 23% / boot tmpfs 100M 0 100M 0% / run / user / 0 

Hasilnya, kami mendapat partisi extended / dev / vda2. Sekarang, secara berurutan, apa yang sebenarnya kami lakukan:

  • fdisk / dev / vda - meluncurkan utilitas fdisk dengan menghubungkan ke bagian / dev / vda
  • / d - hapus bagian tersebut, secara default itu adalah bagian 2 yang kita butuhkan, jadi pada paragraf berikutnya kita cukup tekan Enter
  • / n - buat bagian baru, di paragraf berikutnya cukup tekan Enter atau ketik hal, Enter Selanjutnya, karena bagian yang dibuat akan secara default menjadi 2.
  • Saat menentukan sektor pertama dan terakhir, kami juga cukup menekan Enter, jika kami ingin memperluas bagian ke maksimum, jika Anda ingin menentukan ukuran tertentu, di sektor terakhir menentukan ukuran disk seperti yang ditunjukkan dalam menu + size K, M, G Ukuran tidak dapat kurang dari sebelumnya!
  • / b - terapkan pengaturan kami.

Setelah reboot, periksa disk dengan perintah:

xfs_growfs / dev / vda2

Beberapa sumber menunjukkan perintah untuk menyelesaikan prosedur ini:

resize2fs / dev / vda2

Tetapi ini tidak bekerja dengan sistem file xfs!

Pekerjaan ekspansi disk pada mesin virtual CentOS 7 telah selesai.

Disk ekspansi di Server Windows tamu

Kami terhubung ke mesin virtual melalui rdp atau VNC dan melakukan pekerjaan memperluas disk.

  1. Buka Server Manager -> Tools -> Manajemen Komputer;
  2. Di jendela yang terbuka, pilih di menu Manajemen disk, setelah itu Anda akan melihat semua drive dan ruang yang tidak terisi yang kami tambahkan dari hypervisor KVM;
  3. Pilih drive yang diinginkan dan klik Volume Diperluas;
  4. Secara default, semua ruang yang tersedia akan ditawarkan untuk menambah ukuran disk;
  5. Klik "berikutnya" dan lengkapi ekstensi. Setelah prosedur ini, bagian Anda dalam sistem perlu diperluas;

Saya ingin menambahkan itu sebelum prosedur ekspansi disk untuk mesin virtual, saya menyarankan Anda untuk membuat cadangan disk itu sendiri. Hentikan mesin virtual dan salin gambar disk ke direktori cadangan atau ke direktori mana pun yang memiliki ruang kosong. Jika selama bekerja, ada yang salah, Anda selalu dapat mengembalikan gambar disk virtual dari cadangan.

Cara mengurangi ukuran disk virtual di KVM?

Dalam pekerjaan saya, sebelumnya saya sering menemukan masalah ini, tetapi sayangnya, Anda tidak dapat mengurangi disk dengan aman di mesin virtual di KVM! Satu-satunya ukuran yang dapat diterima untuk mengurangi ukuran disk mesin virtual KVM pada penyimpanan fisik adalah dengan mengompresnya melalui konversi.

Ada banyak artikel di Internet, konon karena Anda dapat mengurangi ukuran disk di mesin virtual, tetapi ini tidak berfungsi.

Saya akan memberikan beberapa contoh yang saya temui dan yang saya periksa sendiri.

Mengurangi disk KVM dengan utilitas qemu

Sejumlah sumber daya menjelaskan tindakan yang dilakukan menggunakan utilitas qemu. Mereka menyarankan mengurangi ukuran disk mesin virtual menggunakan perintah:

qemu-img mengubah ukuran / drive_path -5G - kurangi disk sebesar 5G

Atau opsi ini dengan ukuran tertentu:

mengubah ukuran qemu-img / 25G drive_path - menunjukkan ukuran disk dalam 25G

Apa yang terjadi setelah menjalankan perintah ini? Kami memulai server dan tentu saja sistem tidak bisa boot:

Saya mencoba mengurangi partisi dari bawah sistem menggunakan utilitas fdisk, tetapi dalam kasus ini, sistem juga berhenti memuat, bahkan jika Anda melewatkan langkah mengurangi disk dari server fisik dan ini logis. Bagian yang kami kurangi, sistem dan, karenanya, OS, berhenti memuat, karena ketika disk berkurang, informasi tersebut tampaknya dihancurkan.

Mengurangi disk virtual dengan substitusi gambar

Sudah bukan pilihan umum dalam instruksi - ini mengurangi disk, dengan penggantian yang lama. Artinya, Anda membuat mesin virtual baru dengan ukuran disk yang Anda butuhkan. Setelah itu, ganti disk image lama dengan image baru dan dilihat dari deskripsi artikel di berbagai sumber, ini berfungsi. Saya juga melakukan pemeriksaan dan itu merusak sistem file, seperti pada versi pertama. Saya akan memberikan contoh perintah:

virt-resize / old_drive_ image / new_drive_image

Opsi juga diberikan, dengan mengubah disk dari format mentah ke format qcow2, TETAPI awalnya saya membuat mesin dalam format ini dan menjelaskan mengapa.

Format disk KVM dan kompresi disk dalam format qcow2

Di awal artikel, saya menyebutkan dua format ini.

mentah - diterjemahkan "mentah". Keuntungan dari format, kinerja maksimum, fleksibilitas format. Kontra massa, yang utama adalah:

  • Disk mengambil semua ruang disk di server fisik yang telah dialokasikan untuk itu;
  • Tidak dapat membuat foto.

Qcow2 - Ini adalah format hypervisor QEMU asli, serta QEMU-KVM. Ini adalah format disk virtual paling nyaman dari semua yang didukung di KVM. Gambar disk meningkat ketika data menumpuk di mesin virtual, snapshots didukung.

Apa gunanya format qcow2? Pada prinsipnya, Anda tidak perlu mengurangi ukuran disk virtual, karena disk mengambil di server, persis seperti banyak ruang yang ditempati di sana. Jika data Anda di server terus-menerus ditimpa dan kadang-kadang disk "bengkak", Anda dapat dengan mudah mengompresnya. Pertimbangkan opsi ini. Saya akan nol beberapa ruang disk dan kemudian menghapus file:

dd if = / dev / zero of = / mytempfile
rm -rf / mytempfile

Saat memeriksa dari server, disk image pertama kali berbobot 2.4G dan kemudian diperluas menjadi 5.9G:

# du -sh / image_path

2.4G *****

# du -sh / image_path

5.9G *****

Artinya, setelah menghapus informasi di mesin virtual, disk tidak mengompres kembali. Agar file disk mendapatkan ukuran sebenarnya, saya menggunakan metode berikut:

Kami membuat cadangan file disk, menghentikan mesin virtual, dan kemudian melakukan hal berikut:

qemu-img convert -O qcow2 / old_image / new_image

Kemudian Anda dapat memeriksa ukuran dua disk:

# du -sh / new_drive

1.6G / ****

# du -sh / old_disk

5.8G / ****

Seperti yang Anda lihat, ukuran disk yang dikompresi adalah 1.6G. Ganti nama disk image baru dengan yang kita butuhkan dan jalankan mesin virtual:

# df -h

Ukuran Filesystem yang Digunakan Penggunaan yang Tersedia% Dipasang di devtmpfs 485M 0 485M 0% / dev tmpfs 496M 0 496M 0% / dev / shm tmpfs 496M 6,6M 489M 2% / jalankan tmpfs 496M 0 496M 0% / sys / fs / cgroup / dev / vda2 25G 1.3G 24G 6% / / dev / vda1 488M 100M 353M 23% / boot tmpfs 100M 0 100M 0% / run / user / 0 

Verifikasi dari server:

# du -sh / disk image

1.6G / ****

Metode ini berfungsi. Selama penggunaannya, sistem file di mesin virtual tidak pernah mati. Tetapi saya sangat menyarankan bahwa sebelum bekerja, buat salinan disk jika Anda tidak ingin kehilangan data.

Hanya itu yang ingin saya ceritakan di artikel ini. Jika salah satu pengunjung situs memiliki cara kerja untuk mengurangi disk pada KVM, yaitu reduksi (bukan kompresi) dan yang berfungsi, tawarkan opsi Anda dan saya pasti akan mengujinya..