Teknologi virtualisasi sangat diminati saat ini tidak hanya di segmen "bisnis besar", tetapi juga di SMB dan di antara pengguna rumahan. Secara khusus, untuk perusahaan kecil, server virtualisasi dapat digunakan untuk mengimplementasikan sejumlah layanan layanan yang tidak terlalu intensif sumber daya. Ini biasanya mengacu pada server yang berdiri sendiri berdasarkan pada platform prosesor tunggal atau ganda, dengan jumlah RAM yang relatif kecil dalam 32-64 GB dan tanpa sistem penyimpanan kinerja tinggi khusus. Tetapi di luar seluruh rangkaian keuntungan, Anda perlu menyadari bahwa dalam hal kinerja, sistem virtual berbeda dari yang nyata. Pada artikel ini, kami akan membandingkan kecepatan berbagai jenis drive lokal (HDD, SSD, dan NVMe) untuk beberapa konfigurasi mesin virtual untuk memperkirakan kerugian dari virtualisasi mereka. Tidak ada yang membantah bahwa dalam implementasi sistem virtualisasi yang "benar" lebih baik menggunakan penyimpanan eksternal, tetapi dalam versi anggaran Anda dapat bertahan dengan disk lokal.
Pengujian dilakukan pada server dengan konfigurasi berikut: Motherboard Asus Z10PE-D16, dua prosesor Intel Xeon E5-2609 v3, RAM 64 GB. Proxmox VE versi 5.2, sistem open source berbasis pada Debian, dipilih sebagai lingkungan virtualisasi. Untuk pemasangannya, SSD SATA terpisah digunakan, dan drive yang diuji terhubung secara terpisah ke antarmuka dan porta lain.
Pertama, uji drive dari platform host. Opsi kedua adalah meneruskan ke mesin virtual (KVM dan Debian 9 digunakan untuk itu, 2 core dan 8 GB RAM dialokasikan) sebagai disk fisik. Konfigurasi ketiga adalah disk virtual pada LVM. Yang keempat adalah file RAW pada volume dengan sistem file ext4. Dalam dua opsi terakhir, ukuran disk 64 GB dipilih. Jadi hasil tambahan dari artikel ini dapat berupa perbandingan LVM dan RAW untuk menyimpan gambar disk virtual.
Utilitas fio dengan pola baca dan tulis berurutan dengan blok 256 KB dan operasi acak dengan blok 4 KB akan digunakan untuk mengukur kecepatan. Pengujian dilakukan dengan parameter iodepth dari 1 hingga 256 untuk meniru beban yang berbeda. Untuk operasi berurutan, kami memperkirakan kecepatan dalam MB / s, untuk operasi acak - IOPS. Selain itu, kami melihat penundaan rata-rata (clat dari laporan pengujian).
Mari kita mulai dengan hard drive tradisional, dalam peran HGST HUH728080ALE640 lansia - drive dengan antarmuka SATA dan kapasitas 2 TB. Penggunaan hard drive tunggal, terutama jika tidak ada persyaratan volume, dalam skenario yang dijelaskan tentang virtualisasi murah untuk beban kecil dapat dianggap sebagai opsi khas jika Anda benar-benar menyimpan atau "memahat dari apa yang dulu" dan tidak memasukkan opsi ini dengan pertimbangan akan salah.


Saat membaca, semua opsi, kecuali yang terakhir, menunjukkan hasil yang kira-kira sama pada level 190 MB / s (hanya dengan beban berat dengan iodepth = 256 untuk passthrough dan LVM hasilnya dikurangi menjadi 150 MB / s). Sedangkan mentah, berkat caching pada tuan rumah, "terbang ke angkasa" dan yang lainnya tidak lagi terlihat dengan latar belakangnya. Di satu sisi, kita dapat mengatakan bahwa tes yang digunakan dan pengaturan sistem tidak memungkinkan kita untuk mengevaluasi kecepatan konfigurasi ini dengan benar dan menunjukkan kinerja bukan RAM, tetapi RAM. Di sisi lain, caching adalah salah satu teknologi paling efektif dan umum untuk meningkatkan produktivitas, dan jika berhasil, akan aneh jika menolaknya. Tetapi jangan lupa tentang kekuatan yang dapat diandalkan dalam konfigurasi seperti itu.


Tidak ada efek seperti itu pada rekaman lagi, sehingga dalam operasi berurutan semua konfigurasi kira-kira sama - kecepatan maksimumnya sekitar 190 MB / s. Meskipun mentah masih berperilaku berbeda dari yang lain - dengan beban kecil itu lebih lambat, tetapi maksimum tidak melambat seperti yang lain. Tidak ada perbedaan dalam keterlambatan.
Penggunaan cache host juga terlihat dalam operasi baca acak - di sini mentah secara konsisten tercepat dan menunjukkan hingga 950 IOPS. Sekitar dua kali lebih lambat dari LVM - hingga 450 IOPS. Nah, hard drive itu sendiri, termasuk "penerusan" ke sistem tamu, menunjukkan sekitar 200 IOPS. Distribusi peserta pada jadwal penundaan konsisten dengan kecepatan.
Pada operasi penulisan acak, konfigurasi lvm, yang menyediakan hingga 400 IOPS, terbukti menjadi yang terbaik. Ini diikuti oleh mentah (~ 330 IOPS), dan dua peserta terakhir dengan 290 IOPS menutup daftar. Tidak ada perbedaan nyata dalam keterlambatan.
Secara umum, jika Anda tidak memerlukan fungsi yang disediakan oleh lvm, dan kriteria utama bukanlah kecepatan tulis acak, lebih baik menggunakan raw dalam hal kecepatan saat menempatkan disk virtual di penyimpanan lokal. Aplikasi teknologi untuk meneruskan disk fisik ke mesin virtual tidak memberikan keuntungan kinerja dalam kasus ini. Tetapi bisa menarik jika Anda ingin menghubungkan drive dengan data yang ada ke mesin virtual.
Peserta tes kedua adalah Samsung 850 EVO SSD. Mengingat usianya dan bekerja dalam sistem tanpa TRIM, dalam beberapa tes (dalam rekaman berurutan tertentu), ia sudah kehilangan ke hard drive. Namun demikian, karena perolehan kinerja yang signifikan pada operasi acak di depan hard drive tradisional, ini sangat menarik untuk mesin virtual juga.
Hasil pembacaan berurutan dalam mode mentah dapat dikomentari mirip dengan varian dengan hard disk. Tapi yang lebih menarik di sini adalah bahwa dua konfigurasi pertama menunjukkan stabil 370 MB / s di bawah beban berat, sedangkan lvm hanya mampu 190 MB / s. Penundaan untuk mode ini juga lebih tinggi.
Pada operasi tulis, seperti yang telah disebutkan, SSD ini dalam keadaan saat ini tidak terlihat sangat menarik dan menunjukkan kecepatan 100 MB / s. Adapun perbandingan konfigurasi, dalam tes ini mentah hilang pada beban rendah baik dalam kecepatan maupun penundaan.
Operasi acak adalah SSD "kartu truf" utama. Di sini kita melihat bahwa setiap opsi "virtual" jelas kehilangan ke drive "bersih" - mereka hanya menyediakan 30.000 IOPS, sementara SSD itu sendiri mampu bekerja tiga kali lebih cepat. Ternyata, di sini batasannya adalah platform perangkat keras dan perangkat lunak. Namun, keterlambatan dalam tes ini tidak melebihi 7 ms, jadi tidak mungkin perbedaan IOPS ini dapat diketahui oleh aplikasi umum.
Dan pada catatan acak adalah keseimbangan kekuatan yang berbeda. Disk "asli" sudah hilang, meskipun sedikit. Itu mampu menampilkan hingga 4.200 IOPS. lvm dan passthrough adalah satu atau dua ratus lebih, dan mentah sudah mencapai 5.500 IOPS. Pada grafik penundaan dari video yang jelas menarik, fraktur iodepth = 32.
Pengujian menunjukkan bahwa SSD berperilaku berbeda dari HDD dalam skenario ini. Pertama, membaca berurutan dengan LVM tertinggal jauh di belakang opsi lain. Kedua, disk virtual pada SSD terasa hilang dalam IOPS baca acak.
Peserta ketiga agak keluar dari "murah", tetapi produk ini sendiri sangat menarik untuk "akselerator" universal dari operasi disk dan mampu bersaing dalam kecepatan tidak hanya dengan drive tunggal, tetapi juga dengan array RAID. Ini tentang Intel Optane. Dalam hal ini, kami menggunakan model 900P untuk bus PCIe 3.0 x4, dengan kapasitas 280 GB.
Intel Optane sudah mampu bersaing dengan RAM dalam tes ini. Perbedaannya bukan lagi urutan besarnya, seperti peserta lainnya, tetapi hanya dua hingga tiga kali. Selain itu, dengan meningkatnya beban, nilai-nilai tersebut secara praktis dibandingkan. Keterlambatan seperti pada pengujian di atas lebih rendah untuk konfigurasi mentah.
Dalam operasi penulisan berurutan, drive "bersih" bahkan hilang untuk peserta lain - dengan peningkatan beban, drive tersebut mencapai stabilitas 2.150 MB / s, dan mengurangi kecepatan menjadi sekitar 1.700 MB / s. Keterlambatan dalam hal ini tidak bisa dibandingkan.
Operasi baca acak model SSD ini ketika mengaksesnya dari host dapat memberikan hampir 200.000 IOPS (kecepatannya akan berada di level 760 MB / s). Tetapi semua skema koneksi lain, seperti yang kita lihat di atas untuk SSD dengan antarmuka SATA, terbatas pada 35.000 IOPS, yang tidak bisa tidak mengecewakan. Dengan demikian, mereka memiliki penundaan yang lebih tinggi, sekitar lima kali lipat.
Pada perekaman acak, model drive unik ini menunjukkan hasil yang hampir sama dengan pembacaan acak - sekitar 190.000 IOPS untuk koneksi langsung dan 35.000 IOPS untuk opsi lain. Penundaan juga bertepatan dengan grafik pada operasi baca. Di sisi lain, lebih dari 700 MB / s dalam perekaman acak dalam blok kecil - hasil seperti itu masih perlu dicari.
Penggunaan drive Intel Optane untuk masalah yang dipelajari menunjukkan bahwa tidak akan ada penurunan kecepatan yang signifikan pada operasi berurutan dalam sistem operasi tamu. Tetapi jika Anda membutuhkan IOPS tinggi untuk membaca atau menulis secara acak, maka platform ini akan membatasi kinerja di level 35.000 IOPS, meskipun drive itu sendiri lima kali lebih cepat.
Pengujian telah menunjukkan bahwa ketika membangun sistem penyimpanan untuk server virtual, Anda harus memperhatikan kerugian tertentu dari virtualisasi jika kecepatan penting untuk mesin virtual Anda. Pada sebagian besar konfigurasi yang diuji, disk virtual menunjukkan indikator kinerja yang sangat berbeda dari perangkat fisik. Namun, untuk hard drive tradisional, perbedaannya biasanya relatif kecil, karena mereka sendiri tidak begitu cepat. Untuk SSD SATA, korban signifikan dalam IOPS dapat dicatat untuk akses acak, tetapi meskipun demikian, mereka tetap secara dramatis lebih cepat dalam tugas-tugas ini daripada Winchesters. Drive Intel Optane tentu saja kehilangan banyak hal di lingkungan virtual pada operasi acak, tetapi bahkan dalam kasus ini ia tetap sangat cepat dalam perekaman. Dan dalam operasi selanjutnya tidak ada komentar tentang dia. Keunggulan penting lain dari perangkat ini adalah kinerjanya yang stabil - tidak memerlukan operasi pembersihan khusus, sehingga terlepas dari status dan riwayat masa lalu, serta OS dan pengaturannya, kecepatannya akan konstan setiap saat. Tetapi, seperti biasa, tidak ada yang terjadi secara gratis. Intel Optane 900P tidak hanya unik cepat, tetapi juga mahal.