Saya masih baru di ZFS. Saya sudah menggunakan Nexenta tapi saya berpikir untuk beralih ke OpenIndiana atau Solaris 11 Express. Saat ini, saya sedang mempertimbangkan virtualisasi server ZFS sebagai tamu dalam ESXi, Hyper-V atau XenServer (saya belum memutuskan yang mana - saya condong ke ESXi untuk dukungan VMDirectPath dan FreeBSD).
Alasan utama adalah bahwa sepertinya saya memiliki sumber daya yang cukup untuk berkeliling sehingga saya dapat dengan mudah membuat 1-3 VM lain berjalan secara bersamaan. Sebagian besar Windows Server. Mungkin VM Linux / BSD juga. Saya ingin server ZFS tervirtualisasi untuk meng-host semua data untuk VM lain sehingga data mereka dapat disimpan pada disk yang terpisah secara fisik dari disk ZFS (mount sebagai iscsi atau nfs).
Server saat ini memiliki AMD Phenom II dengan 6 core total (2 unlocked), 16GB RAM (maxed out) dan LSI SAS 1068E HBA dengan (7) 1TB SATA II disk terpasang (merencanakan RAIDZ2 dengan cadangan panas). Saya juga memiliki (4) 32GB SATA II SSD terpasang ke motherboard. Saya berharap untuk mirror dua SSD ke mirror boot (untuk virtual host), dan meninggalkan dua SSD lainnya untuk ZIL dan L2ARC (untuk tamu ZFS VM). Saya bersedia menambahkan dua disk lagi untuk menyimpan tamu VM dan mengalokasikan ketujuh disk saat ini sebagai penyimpanan ZFS. Catatan: Motherboard tidak memiliki dukungan IOMMU karena 880G tidak mendukungnya, tetapi saya memiliki papan 890FX yang memiliki IOMMU jika itu membuat perbedaan besar.
Pertanyaan saya adalah:
1) Apakah bijaksana untuk melakukan ini? Saya tidak melihat adanya kerugian jelas (yang membuat saya bertanya-tanya mengapa tidak ada orang lain yang menyebutkannya). Saya merasa seperti saya bisa membuat pengawasan besar dan saya benci untuk berkomitmen untuk ini, pindah semua data saya hanya untuk menjadi fubar dari beberapa menit detail yang saya lewatkan.
2) Kinerja tamu virtual ZFS? Saya bersedia untuk mengambil hit kinerja kecil tapi saya pikir jika tamu VM memiliki akses disk penuh ke disk yang paling tidak, kinerja I / O disk akan diabaikan (dibandingkan dengan menjalankan ZFS non-virtual) . Adakah yang bisa membicarakan hal ini dari pengalaman hosting server ZFS sebagai tamu VM?
Jawaban:
Saya telah membangun sejumlah pengaturan penyimpanan ZFS "all-in-one" ini. Awalnya terinspirasi oleh posting yang sangat baik di Ubiquitous Talk , solusi saya mengambil pendekatan yang sedikit berbeda dengan desain perangkat keras, tetapi menghasilkan hasil penyimpanan ZFS tervirtualisasi terenkapsulasi.
Untuk menjawab pertanyaan Anda:
Menentukan apakah ini merupakan pendekatan yang bijak benar-benar tergantung pada tujuan Anda. Apa yang ingin Anda capai? Jika Anda memiliki teknologi (ZFS) dan sedang mencari aplikasi untuk itu, maka ini adalah ide yang buruk. Anda lebih baik menggunakan pengontrol RAID perangkat keras yang tepat dan menjalankan VM Anda di partisi VMFS lokal. Itu adalah jalan yang paling tidak menentang. Namun, jika Anda memiliki alasan khusus untuk ingin menggunakan ZFS (replikasi, kompresi, keamanan data, portabilitas, dll.), Maka ini pasti mungkin jika Anda bersedia melakukan upaya.
Performa sangat bergantung pada desain Anda terlepas dari apakah Anda menggunakan bare-metal atau virtual. Menggunakan PCI-passthrough (atau AMD IOMMU dalam kasus Anda) sangat penting, karena Anda akan memberikan akses langsung ZFS VM Anda ke pengontrol dan disk penyimpanan SAS. Selama VM Anda dialokasikan jumlah RAM dan sumber daya CPU yang tepat, kinerjanya mendekati asli. Tentu saja, masalah desain kolam Anda. Silakan pertimbangkan mirror versus RAID Z2. ZFS berskala di vdevs dan bukan jumlah disk .
Platform saya adalah VMWare ESXi 5 dan sistem operasi berkemampuan ZFS pilihan saya adalah NexentaStor Community Edition .
Ini adalah server
rumahsaya . Ini adalah HP ProLiant DL370 G6 yang menjalankan ESX dari kartu SD internal. Kedua disk 72GB yang dicerminkan di tengah dihubungkan dengan pengontrol RAID Smart Array P410 internal dan membentuk volume VMFS. Volume itu menampung NexentaStor VM. Ingat bahwa mesin virtual ZFS perlu hidup di suatu tempat pada penyimpanan yang stabil.Ada pengontrol LSI 9211-8i SAS yang terhubung ke sangkar drive drive enam disk SATA 1 TB di sebelah kanan. Ini diteruskan ke mesin virtual NexentaStor, memungkinkan Nexenta untuk melihat disk sebagai pengaturan RAID 1 + 0. Disk ini adalah drive WD10EARS Western Digital Green Green yang selaras dengan
zpool
biner yang dimodifikasi .Saya tidak menggunakan perangkat ZIL atau cache L2ARC dalam instalasi ini.
VM memiliki 6GB RAM dan 2 vCPU dialokasikan. Dalam ESXi, jika Anda menggunakan PCI-passthrough, reservasi memori untuk jumlah penuh dari RAM yang ditugaskan VM akan dibuat.
Saya memberikan dua antarmuka jaringan NexentaStor VM. Satu untuk lalu lintas manajemen. Yang lain adalah bagian dari vSwitch yang terpisah dan memiliki antarmuka vmkernel (tanpa uplink eksternal). Ini memungkinkan VM untuk menyediakan penyimpanan NFS yang dapat dipasang oleh ESXi melalui jaringan pribadi. Anda dapat dengan mudah menambahkan antarmuka uplink untuk memberikan akses ke host di luar.
Instal VM baru Anda di datastore yang diekspor ZFS. Pastikan untuk mengatur parameter "Virtual Machine Startup / Shutdown" di ESXi. Anda ingin penyimpanan VM untuk boot sebelum sistem tamu dan ditutup terakhir.
Berikut adalah hasil bonnie ++ dan iozone yang dijalankan langsung di NexentaStor VM. Kompresi ZFS tidak aktif untuk pengujian untuk menunjukkan angka yang lebih dapat dihubungkan, tetapi dalam praktiknya, kompresi standar ZFS (bukan gzip) harus selalu diaktifkan.
# bonnie++ -u root -n 64:100000:16:64
# iozone -t1 -i0 -i1 -i2 -r1m -s12g
Ini adalah grafik NexentaStor DTrace yang menunjukkan IOPS VM penyimpanan dan kecepatan transfer selama uji coba. 4000 IOPS dan 400+ Megabytes / detik cukup masuk akal untuk disk low-end tersebut. (ukuran blok besar)
Catatan lain.
sumber