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 rumah saya . 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
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
saint 12G 156 98 206597 26 135609 24 410 97 367498 21 1478 17
Latency 280ms 3177ms 1019ms 163ms 180ms 225ms
Version 1.96 ------Sequential Create------ --------Random Create--------
saint -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files:max:min /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
64:100000:16/64 6585 60 58754 100 32272 79 9827 58 38709 100 27189 80
Latency 1032ms 469us 1080us 101ms 375us 16108us
# iozone -t1 -i0 -i1 -i2 -r1m -s12g
Iozone: Performance Test of File I/O
Run began: Wed Jun 13 22:36:14 2012
Record Size 1024 KB
File size set to 12582912 KB
Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s12g
Output is in Kbytes/sec
Time Resolution = 0.000001 seconds.
Throughput test with 1 process
Each process writes a 12582912 Kbyte file in 1024 Kbyte records
Children see throughput for 1 initial writers = 234459.41 KB/sec
Children see throughput for 1 rewriters = 235029.34 KB/sec
Children see throughput for 1 readers = 359297.38 KB/sec
Children see throughput for 1 re-readers = 359821.19 KB/sec
Children see throughput for 1 random readers = 57756.71 KB/sec
Children see throughput for 1 random writers = 232716.19 KB/sec
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.
- Anda akan ingin menguji SSD Anda untuk melihat apakah mereka dapat disajikan langsung ke VM atau jika DirectPath memilih seluruh pengontrol motherboard.
- Anda tidak memiliki banyak daya CPU, jadi batasi unit penyimpanan hingga 2 vCPU.
- Jangan gunakan RAIDZ1 / Z2 / Z3 kecuali Anda benar-benar membutuhkan ruang disk.
- Jangan gunakan deduplikasi. Kompresi gratis dan sangat berguna untuk VM. Deduplikasi akan membutuhkan lebih banyak RAM + L2ARC agar menjadi efektif.
- Mulai tanpa SSD dan tambahkan jika perlu. Beban kerja tertentu tidak menekan ZIL atau L2ARC .
- NexentaStor adalah paket lengkap. Ada manfaat memiliki GUI manajemen yang solid, namun, saya pernah mendengar tentang kesuksesan dengan Napp-It .