मैंने इनमें से कई "ऑल-इन-वन" ZFS स्टोरेज सेटअप बनाए हैं। शुरुआत में यूबीक्विटस टॉक में उत्कृष्ट पोस्ट से प्रेरित होकर , मेरा समाधान हार्डवेयर डिज़ाइन के लिए थोड़ा अलग दृष्टिकोण लेता है, लेकिन एन्कैप्सुलेटेड वर्चुअलाइज्ड ज़ेडएफएस स्टोरेज का परिणाम देता है।
अपने सवालों के जवाब देने के लिए:
यह निर्धारित करना कि क्या यह एक बुद्धिमान दृष्टिकोण है वास्तव में आपके लक्ष्यों पर निर्भर करता है। आप क्या खत्म करने की कोशिश कर रहे हैं? यदि आपके पास एक तकनीक (ZFS) है और इसके लिए एक आवेदन खोज रहे हैं, तो यह एक बुरा विचार है। आप एक उचित हार्डवेयर RAID नियंत्रक का उपयोग करना और अपने VMs को स्थानीय VMFS विभाजन पर चलाना बेहतर समझते हैं। यह कम से कम प्रतिरोध का रास्ता है। हालांकि, यदि आपके पास ZFS (प्रतिकृति, संपीड़न, डेटा सुरक्षा, पोर्टेबिलिटी, आदि) का उपयोग करने की इच्छा के लिए एक विशिष्ट कारण है, तो यह निश्चित रूप से संभव है यदि आप प्रयास में लगाने के इच्छुक हैं।
प्रदर्शन आपके डिज़ाइन पर बहुत अधिक निर्भर करता है, भले ही आप नंगे-धातु या आभासी पर चल रहे हों। का उपयोग करते हुए पीसीआई-पासथ्रू (या अपने मामले में एएमडी IOMMU), आवश्यक है के रूप में आप एक एसएएस भंडारण नियंत्रक और डिस्क के लिए अपने ZFS वीएम सीधी पहुँच प्रदान की जाएगी। जब तक आपके वीएम को उचित मात्रा में रैम और सीपीयू संसाधनों का आवंटन किया जाता है, तब तक प्रदर्शन निकट-मूल है। बेशक, आपका पूल डिजाइन मायने रखता है। कृपया RAID Z2 के दर्पणों पर विचार करें। जेडएफएस को वीवीएस में तराजू और डिस्क की संख्या नहीं है ।
मेरा मंच VMWare ESXi 5 है और मेरा पसंदीदा ZFS- सक्षम ऑपरेटिंग सिस्टम NexentaStor कम्युनिटी एडिशन है ।
यह मेरा होम सर्वर है । यह एक HP SDL7070 G6 है जो ईएसएक्सआई फ्रॉन को आंतरिक एसडी कार्ड से चलाता है। केंद्र में दो प्रतिबिंबित 72GB डिस्क आंतरिक स्मार्ट सरणी P410 RAID नियंत्रक से जुड़ी हुई है और VMFS वॉल्यूम बनाती है। उस वॉल्यूम में एक NexentaStor VM है। याद रखें कि ZFS वर्चुअल मशीन को स्थिर भंडारण पर कहीं रहने की आवश्यकता है ।
वहाँ एक LSI 9211-8i एसएएस नियंत्रक है जो ड्राइव केज हाउसिंग से जुड़ा हुआ है 1 1TB SATA डिस्क दाईं ओर। इसे नेक्सेंटास्टोर वर्चुअल मशीन से गुजारा जाता है, जिससे नेक्सेंटा को RAID 1 + 0 सेटअप के रूप में डिस्क को देखने की अनुमति मिलती है। डिस्क एल- सस्तेो वेस्टर्न डिजिटल ग्रीन WD10EARS ड्राइव हैं जो एक संशोधित बाइनरी के साथ ठीक से संरेखित हैंzpool
।
मैं इस स्थापना में एक ZIL डिवाइस या किसी L2ARC कैश का उपयोग नहीं कर रहा हूं।
VM के पास 6GB RAM और 2 vCPU का आवंटन है। ESXi में, यदि आप PCI-passthrough का उपयोग करते हैं, तो VM के असाइन किए गए RAM की पूरी राशि के लिए एक स्मृति आरक्षण बनाया जाएगा।
मैं NexentaStor VM दो नेटवर्क इंटरफेस देता हूं। एक प्रबंधन यातायात के लिए है। अन्य एक अलग vSwitch का हिस्सा है और इसमें एक vmkernel इंटरफ़ेस है (बिना बाहरी अपलिंक के)। यह वीएम को निजी नेटवर्क के माध्यम से ईएक्सएक्सआई द्वारा माउंट किए गए एनएफएस भंडारण प्रदान करने की अनुमति देता है। आप बाहरी होस्ट तक पहुंच प्रदान करने के लिए आसानी से एक अपलिंक इंटरफ़ेस जोड़ सकते हैं।
ZFS- निर्यात किए गए डेटास्टोर पर अपने नए VMs स्थापित करें। ESXi में "वर्चुअल मशीन स्टार्टअप / शटडाउन" पैरामीटर सेट करना सुनिश्चित करें। आप चाहते हैं कि संग्रहण VM अतिथि प्रणालियों से पहले बूट हो और अंतिम बंद हो।
यहाँ सीधे नेन्स्टेंटस्टोर वीएम पर एक रन के बोनी ++ और iozone परिणाम हैं। परीक्षण के लिए अधिक भरोसेमंद संख्या दिखाने के लिए ZFS संपीड़न बंद है, लेकिन व्यवहार में, ZFS डिफ़ॉल्ट संपीड़न (gzip नहीं) को हमेशा सक्षम होना चाहिए।
# 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
यह एक NexentaStor DTrace ग्राफ है जो टेस्ट रन के दौरान स्टोरेज VM के IOPS और ट्रांसफर दरों को दिखाता है। 4000 IOPS और 400+ मेगाबाइट / सेकेंड ऐसे लो-एंड डिस्क के लिए बहुत ही उचित है। (बड़ा ब्लॉक आकार, हालांकि)
अन्य नोट।
- आप यह देखने के लिए अपने SSDs का परीक्षण करना चाहेंगे कि क्या उन्हें सीधे VM में प्रस्तुत किया जा सकता है या यदि DirectPath पूरे मदरबोर्ड कंट्रोलर को चुनता है।
- आपके पास ज्यादा CPU पावर नहीं है, इसलिए स्टोरेज यूनिट को 2 vCPU तक सीमित करें।
- RAIDZ1 / Z2 / Z3 का उपयोग न करें जब तक कि आपको वास्तव में डिस्क स्थान की आवश्यकता न हो।
- कटौती का उपयोग न करें। संपीड़न VMs के लिए स्वतंत्र और बहुत उपयोगी है। प्रभावी होने के लिए डिडुप्लीकेशन में बहुत अधिक RAM + L2ARC की आवश्यकता होगी।
- SSDs के बिना शुरू करें और यदि आवश्यक हो तो उन्हें जोड़ें। कुछ कार्यभार ZIL या L2ARC से नहीं टकराते ।
- NexentaStor एक पूरा पैकेज है। एक ठोस प्रबंधन जीयूआई होने का एक फायदा है, हालांकि, मैंने नप-इट के साथ सफलता के बारे में सुना है ।