Mesin virtual dan TRIM

18

Meskipun dukungan TRIM diperkenalkan untuk membuat SSD bekerja lebih baik, itu juga harus membantu mesin virtual mengoptimalkan disk virtual (misalnya untuk mengetahui bagian mana dari disk virtual yang tidak memerlukan penyimpanan pada partisi fisik). Apakah ada mesin VM yang menggunakan TRIM dengan cara ini?

liori
sumber

Jawaban:

10

Virtualbox mendukung TRIM sejak versi 4.2

  • Penyimpanan: dukungan yang diimplementasikan untuk membuang blok gambar yang tidak digunakan melalui TRIM untuk SATA dan IDE dan UNMAP untuk SCSI saat menggunakan gambar VDI

Anda harus menggunakan --nonrotational ondan --discard onopsi :

  • --discard

    Mengaktifkan fitur auto-discard untuk hard disk virtual. Ini menentukan bahwa gambar VDI akan menyusut dalam menanggapi perintah trim dari OS tamu. Persyaratan berikut harus dipenuhi:

    • Format disk harus VDI.
    • Ukuran area yang dibersihkan harus minimal 1 MB.
    • Oracle VM VirtualBox hanya akan memangkas seluruh blok 1 MB. VDI sendiri diatur ke dalam 1 MB blok, jadi ini hanya akan berfungsi jika ruang yang dipangkas setidaknya 1 MB blok yang berdekatan pada batas 1 MB. Di Windows, sesekali defragmentasi dengan defrag.exe /D, atau di Linux yang berjalan btrfs filesystem defragsebagai tugas cron latar belakang mungkin bermanfaat.

Informasi lebih lanjut dapat ditemukan di


Hyper-V juga dapat mengecilkan gambar VHD dan VHDX

Gunakan kasing

  • ...
  • VHD konsumen dipasang pada SAN yang disediakan secara tipis:

    VHD pada awalnya dipasang pada satu lempengan minimum dari lingkungan yang disediakan secara tipis. Karena file disimpan dalam VHD, jejak penyimpanan VHD tumbuh dalam banyak lembaran. Ketika file dihapus dalam VHD, Hyper-V memanggil File_TRIM ke SAN yang disediakan tipis. Jika TRIM lebih besar dari granularitas SLAB, SAN sekarang dapat menghapus SLAB dan karenanya mengurangi jejak VHD pada SAN itu.

Jika VHD tinggal di server berbasis Windows 8, Pengoptimal Penyimpanan juga akan mengirim TRIM untuk mengurangi jejak slab VHD dari dalam VHD yang dipasang.

API baru memungkinkan aplikasi untuk mengirim petunjuk "TRIM dan Unmap" ke media penyimpanan

Lihat juga


VMware Workstation 10 mengklaim mendukung SSD

  • SSD Pass-through Windows 8 mampu mendeteksi ketika dijalankan dari solid state drive (SSD) dan mengoptimalkan dirinya untuk perangkat keras ini. Di Workstation 10, sistem operasi tamu akan dapat mendeteksi ketika file Disk mesin virtual disimpan pada drive SSD dan sistem operasi dapat membuat optimalisasi yang sama ketika sedang berjalan di mesin virtual

Catatan Rilis VMware Workstation 10.0

Itu juga disebutkan di Persyaratan Disk Drive Pusat Dokumentasi VMWare Workstation Pro untuk Sistem Host - Solid-State Drive :

Jika mesin host Anda memiliki drive solid-state drive (SSD) fisik, host menginformasikan sistem operasi tamu yang dijalankan pada SSD.

Ini memungkinkan sistem operasi tamu untuk mengoptimalkan perilaku. Bagaimana mesin virtual mengenali SSD dan menggunakan informasi ini tergantung pada sistem operasi tamu dan jenis disk dari disk virtual (SCSI, SATA, atau IDE).

Tapi dari teks, sepertinya perintah TRIM hanya diteruskan ke SSD fisik yang mendasarinya, bukannya menyusut gambar VMDK

Produk-produk VMware lain seperti vSphere dan ESXi juga mendukung TRIM, tetapi masih belum jelas apakah mereka menggunakannya untuk mengecilkan gambar atau tidak

P. Apakah VMware mendukung UNMAP langsung dari OS Tamu di vSphere 6.0.

Iya. UNMAP yang mengeluarkan langsung dari OS Tamu untuk mendapatkan kembali ruang didukung di vSphere 6.0.

Q. Apa prasyarat yang diperlukan untuk menjalankan UNMAP?

Ada sejumlah prasyarat yang harus dipenuhi. Ini adalah:

  • VMDK harus tipis
  • Versi Perangkat Keras Mesin Virtual harus 11 (ESXi 6.0)
  • Pengaturan lanjutan EnableBlockDelete harus diatur ke 1
  • OS Tamu harus dapat mengidentifikasi disk sebagai tipis (Windows 2012 [diperbarui 30-Oktober-2015] menggunakan halaman mode B2 untuk mencapai ini)

Q. Apakah reklamasi hanya berfungsi untuk UNMAP? Bagaimana dengan TRIM?

Ini adalah jawaban "itu tergantung". TRIM hanya digunakan ketika perangkat yang mendasarinya adalah SSD - Solid State Disk. Dari apa yang saya mengerti, TRIM akan dikonversi ke UNMAP di tumpukan I / O. Namun, ada beberapa masalah dengan TRIM yang dikonversi menjadi UNMAP. UNMAP bekerja pada batas blok tertentu pada VMFS, sedangkan TRIM tidak memiliki batasan seperti itu. Jadi, TRIM tertentu yang dikonversi menjadi UNMAP mungkin gagal karena memblokir masalah penyelarasan.

Fitur Penyimpanan vSphere 6.0 Bagian 8: VAAI UNMAP berubah

Lihat juga

phuclv
sumber
1
Saya percaya VMware menghapus klaim pemasaran ini dari versi mendatang karena lumpuh karena mereka tidak mendukung TRIM. Lihat di sini dan di sini
Tom Hale
1

Dukungan TRIM membutuhkan pengetahuan mendalam tentang perangkat keras yang mendasarinya. Karena mesin Virtual ( Tamu VM ) menurut definisi berjalan pada perangkat keras virtual, mereka tidak mengetahui detail hard drive atau SSD tempat mereka berada.

Jadi, jika sistem operasi VM Host memahami TRIM, itu sudah cukup untuk semua Tamu VM yang menjalankannya.

Beberapa Host VM dapat "melewati" drive fisik dan memasangnya langsung ke sistem operasi pada Tamu VM. Bergantung pada implementasi yang tepat, secara teori dimungkinkan bahwa Tamu kemudian dapat mendukung fitur TRIM dari SSD. Seperti kebanyakan hal, jarak tempuh Anda mungkin berbeda-beda, dan jika itu penting untuk lingkungan Anda, Anda harus mengujinya dengan seksama sebelum Anda berkomitmen.

stewartwb
sumber
1
Satu-satunya hal yang akan saya tambahkan adalah jika file hard drive vm dinamis, Anda dapat mengecilkannya dan tuan rumah kemudian, jika perlu, memberitahu SSD untuk memangkas sektor yang baru dibebaskan. Ini dapat mempercepat menulis file hard drive karena ketika file tumbuh Anda tidak memodifikasi sektor host yang ada, sektor baru / dipangkas dapat digunakan untuk menulis tamu. Biasanya saya memperbaiki ukuran pada file hard drive vm saya, tetapi itu untuk mencegah fragmentasi pada HD. Dengan SSD saya mungkin akan menyusut dinamis dan berkala.
Scott McClenning
2
-1. Anda melewatkan fakta bahwa TRIM / unmap digunakan untuk mengecilkan file gambar VM berukuran dinamis. Dan sebagai hasilnya, OS host dapat mengeluarkan TRIM / unmap pada perangkat keras yang mendasarinya. Ini adalah bagian penting dari konsep penyediaan tipis.
rustyx
-1

TRIM diciptakan karena menulis ke SSD harus dilakukan dalam blok 512K dan menentukan berapa banyak blok yang sebenarnya digunakan oleh file atau file tidak mungkin untuk drive SSD itu sendiri dan harus dikomunikasikan oleh OS dan sistem file.

Lihat

http://en.wikipedia.org/wiki/TRIM

EDIT:

Tautan wiki mengatakan lebih baik daripada yang saya bisa:

Perintah TRIM tidak bekerja dengan disk yang disimpan dalam file gambar disk. Ini disebabkan oleh fakta bahwa file komputer hanya dapat dihapus sepenuhnya atau terpotong pada akhirnya. Masalah ini mempengaruhi aplikasi seperti layanan disk virtual, mesin virtual, dll.

bot403
sumber
6
VM dapat menyimpan informasi tentang blok mana yang dipangkas untuk digunakan ketika permintaan pengguna untuk mengemas dan menyusutkan disk virtual. VMWare saat ini memiliki operasi yang serupa, tetapi ia bekerja dengan menimpa semua ruang kosong di dalam VM terlebih dahulu.
liori
6
Pertanyaannya bukan tentang menerjemahkan operasi TRIM pada disk virtual ke operasi TRIM pada disk host. Seperti yang Anda tunjukkan, itu tidak bekerja secara langsung. Pertanyaannya jelas tentang menerjemahkan panggilan TRIM pada disk virtual ke pemendekan file gambar pada disk host (yang, pada gilirannya, dapat memicu operasi TRIM pada disk host, tetapi pertanyaannya adalah tentang langkah pertama)
Pascal Cuoq
1
Ada file suku cadang , yang seharusnya ideal untuk digunakan sebagai disk image yang dapat dipotong untuk vm.
bukan pengguna