ZFS होस्ट पर VM को चलाने के प्रदर्शन के निहितार्थ क्या हैं?


11

मैं अपने डेबियन लिनक्स होस्ट पर डेटा स्टोरेज के लिए ext3 से ZFS में माइग्रेट करने पर विचार कर रहा हूं, लिनक्स पर ZFS का उपयोग कर रहा हूं । ZFS की एक हत्यारी विशेषता जो मुझे वास्तव में चाहिए, वह है इसकी डेटा अखंडता की गारंटी। मेरे स्टोरेज की जरूरत बढ़ने पर स्टोरेज को तुच्छ रूप से विकसित करने की क्षमता भी कुछ ऐसी है जो मैं आगे देखना चाहता हूं।

हालाँकि, मैं एक ही होस्ट पर कुछ VMs भी चलाता हूँ। (हालांकि आम तौर पर, मेरे मामले में केवल एक वीएम किसी भी समय मेजबान पर चल रहा है।)

जेडएफएस के डेटा की जांच और कॉपी-ऑन-राइट व्यवहार को ध्यान में रखते हुए, इस तथ्य के साथ कि वीएम डिस्क की छवियां तुलनात्मक रूप से बड़ी फाइलें हैं (वर्तमान में मेरी मुख्य वीएम की डिस्क छवि फ़ाइल 31 जीबी पर बैठती है), इस तरह के वीएम अतिथि के अंदर प्रदर्शन के निहितार्थ क्या हैं एक प्रवास? संभावित नकारात्मक प्रदर्शन प्रभाव को कम करने के लिए मैं क्या कदम उठा सकता हूं?

मैं वीएम डिस्क छवियों पर कम डेटा अखंडता की गारंटी के साथ रह सकता हूं यदि आवश्यक हो (मैं किसी भी वीएम के अंदर वास्तव में महत्वपूर्ण कुछ भी नहीं करता हूं) और उन्हें आसानी से बाकी फाइल सिस्टम से अलग कर सकता हूं, लेकिन अगर मैं डॉन करता हूं तो यह अच्छा होगा 'टी (भी चुनिंदा) बहुत अधिक सुविधा है कि सबसे बनाता है मुझे एक अलग फ़ाइल प्रणाली के लिए विस्थापित करना चाहता हूँ बंद कर दिया है।

वर्कस्टेशन-क्लास सिस्टम के लिए हार्डवेयर बहुत ही मांसल है, लेकिन एक हाई-एंड सर्वर (32 जीबी रैम के साथ शायद ही> 10 जीबी उपयोग में, 6-कोर 3.3 गीगाहर्ट्ज सीपीयू, वर्तमान में 2.6 टीबी उपयोगी के लिए एक मोमबत्ती को ज्यादा नहीं रखेगा। के अनुसार डिस्क स्थान dfऔर कुल लगभग 1.1 टीबी मुफ्त; जेडएफएस में माइग्रेट करने से संभवतः कुछ और खाली स्थान जुड़ेंगे) और मैं डेटा डुप्लीकेशन चलाने की योजना नहीं बना रहा हूं (जैसा कि डिडअप चालू करना मेरी स्थिति में बहुत कुछ नहीं जोड़ देगा)। योजना एक JBOD कॉन्फ़िगरेशन (जाहिर है कि अच्छे बैकअप के साथ) के साथ शुरू होनी है, लेकिन मैं दो तरफा दर्पण सेटअप में स्थानांतरित हो सकता हूं अगर अंततः स्थितियां वारंट होती हैं।


यह भी ध्यान रखें कि ZFS IOPS के संदर्भ में पारंपरिक RAID5 बेहतर प्रदर्शन करता है । RAIDZ एकल डिस्क की गति से प्रदर्शन लिखता है क्योंकि यह I / O प्रदर्शन दंड से ग्रस्त नहीं है जो पारंपरिक RAID5 / 6 को नुकसान पहुंचाता है।
स्टीफन लासिवस्की

1
उन सभी के लिए धन्यवाद जिन्होंने आपकी अंतर्दृष्टि के लिए उत्तर दिया है ! मैं निश्चित रूप से बाद में इस सवाल पर वापस आऊंगा।
एक CVn

स्टीफन की टिप्पणी है .. ठीक है, यह सिर्फ गलत है। ZFS RAIDZ का प्रदर्शन पारंपरिक I5 सरणियों की तुलना में IOPS के नजरिए (वीएम में आमतौर पर आपके साथ क्या समस्या है) से काफी खराब है। कृपया ZFS में जाकर लेखन प्रदर्शन में सुधार न करें। शायद ही कभी ऐसा हुआ हो। पढ़ें पूर्ण लाभ एआरसी और आपके काम करने के सेट आकार और डेल्टा के लिए उपलब्ध रैम पर निर्भर करेगा। आमतौर पर वीएम के साथ, जेडएफएस एआरसी विकल्पों की तुलना में समग्र रीड प्रदर्शन के साथ मदद करता है। लेखन आमतौर पर पीड़ित होते हैं, यहां तक ​​कि दर्पण पर भी, RAID के साथ हमेशा।
नेक्स 7

@ नेक्स 7 जेडएफएस से बिल्कुल भी नहीं, बल्कि केवल एक भंडारण उपकरण के साथ कैसे लिखा जाता है, जो कि कुछ mdraid द्वारा प्रदान किया जाता है? क्या ZFS अन्य फ़ाइल सिस्टम के साथ तुलनात्मक प्रदर्शन करता है क्योंकि कोई फैंसी RAID सामान का उपयोग नहीं किया जाता है?
थोरस्टेन शूइंग

जवाबों:


4

चूंकि ZFS ब्लॉक स्तर पर काम करता है इसलिए फाइलों का आकार कोई फर्क नहीं पड़ता है। ZFS को अधिक मेमोरी और CPU की आवश्यकता होती है, लेकिन फाइलसिस्टम के रूप में स्वाभाविक रूप से धीमी गति से नहीं होती है। हालांकि आपको यह जानने की आवश्यकता है कि RAIDZ गति में RAID5 के बराबर नहीं है। RAID10 ठीक है जहां गति एक प्राथमिकता है।


4

ZFS सभ्य (यानी बफ़र) हार्डवेयर की तुलना में अन्य फ़ाइल सिस्टमों की तुलना में तेज़ होगा, आप संभवतः तेज़ (यानी SSD) स्थान पर एक ZIL बनाना चाहते हैं। यह अनिवार्य रूप से कैश को लिखने के लिए एक स्थान है (अच्छी तरह से, ext3 / 4 में एक पत्रिका की तरह)। यह बॉक्स को वास्तविक स्पिंडल डेटा होने से पहले डिस्क पर लिखे जाने के रूप में लिखता है।

आप पढ़े हुए कैश के लिए SSD पर L2 ARC भी बना सकते हैं। यह वीएम वातावरण में शानदार है जहां आप एक ही समय में कई वीएम को बूट करके अपने घुटनों पर शारीरिक डिस्क ला सकते हैं।

ड्राइव VDEVs में जाते हैं, VDEVs ज़ूलप्स में जाते हैं (कृपया एक बार में संपूर्ण डिस्क का उपयोग करें)। यदि यह एक छोटा सिस्टम है, तो आप एक एकल झूला और (यदि आप डेटा हानि के बारे में बहुत चिंतित नहीं हैं) एक एकल VDEV चाहते हैं। VDEV वे हैं जहाँ आप RAID स्तर का चयन करते हैं (हालाँकि यदि आप पर्याप्त डिस्क प्राप्त कर चुके हैं तो आप MIRROR VDEV भी कर सकते हैं)। VDEV की सबसे धीमी डिस्क यह निर्धारित करती है कि पूरा VDEV कितना तेज़ है।

ZFS सभी डेटा अखंडता के बारे में है - कारण फ़ाइल सिस्टम रखरखाव के लिए बहुत सारे पारंपरिक उपकरण मौजूद नहीं हैं (जैसे fsck) वह समस्या है जो वे हल करते हैं जो ZFS फाइल सिस्टम पर मौजूद नहीं हो सकती।

IMO ZFS का सबसे बड़ा दोष यह है कि यदि आपकी फ़ाइल प्रणालियाँ पूर्ण रूप से पहुँचती हैं (75% + कहते हैं) तो यह बहुत धीमी हो जाती है। बस वहाँ मत जाओ।


2

31GB वास्तव में बड़ा नहीं है ...

वैसे भी, आपके द्वारा वर्तमान में उपयोग किए जा रहे फ़ाइल सिस्टम के आधार पर, आप पा सकते हैं कि ZFS थोड़ा धीमा है लेकिन आपके हार्डवेयर स्पेक्स को देखते हुए यह नगण्य हो सकता है।

जाहिर है ZFS कैशिंग के लिए RAM का एक अच्छा हिस्सा उपयोग करेगा जो आपके VMs को सामान्य उपयोग (जब भारी रीडिंग या लेखन नहीं कर रहा हो) में 'स्नैपर' लग सकता है। मुझे यकीन नहीं है कि कैसे लिनक्स पर ZFS को ट्यून किया जाता है, लेकिन आपको अपने एआरसी को सीमित करने की आवश्यकता हो सकती है, यदि संभव हो तो, इसे अपने सभी रैम के साथ भागने से रोकने के लिए (यह देखकर कि आप अपने मेजबान सिस्टम के लिए एक अच्छा हिस्सा छोड़ना चाहते हैं और VMs)।

मैं सम्पीडन सक्षम करूंगा (इन दिनों सलाह यह है कि इसे चालू करें जब तक कि आपके पास कोई अच्छा कारण न हो)। याद रखें कि फाइल सिस्टम पर डेटा डालने से पहले यह करना होगा । ज्यादातर लोग यह देखकर आश्चर्यचकित हैं कि यह वास्तव में इसके साथ तेज है, क्योंकि संपीड़न एल्गोरिदम आमतौर पर डिस्क आईओ की तुलना में तेजी से चलेगा। मुझे संदेह है कि यह आपके 6 कोर प्रोसेसर के साथ एक प्रदर्शन समस्या का कारण होगा। मैं VMs को बहुत कम करने की उम्मीद नहीं कर रहा था, लेकिन मैं डिफ़ॉल्ट संपीड़न सेटिंग के साथ ~ 470GB वीएम डेटा को 304GB में बदलने में सफल रहा।

डिड्यूप से परेशान न हों, यह आपको बाद में परेशान करने के लिए वापस आ जाएगा और इससे छुटकारा पाने की कोशिश में आप सप्ताह भर का डेटा खर्च करेंगे।

यदि आप प्रदर्शन समस्याओं का सामना करते हैं, तो स्पष्ट उत्तर ZIL / L2ARC या यहां तक ​​कि दोनों के रूप में एक SSD जोड़ना है। यह दोनों के लिए एक उपकरण का उपयोग करने के लिए आदर्श नहीं है, लेकिन यह सबसे अधिक संभावना है कि एक पूल पर प्रदर्शन में सुधार होगा जिसमें छोटी संख्या में डिस्क / vdevs होंगे।

जोड़ने के लिए: मैं वास्तव में कोशिश करूंगा और एक अनावश्यक कॉन्फ़िगरेशन के साथ शुरू करूंगा यदि संभवत: (आदर्श रूप से दर्पण), या जितनी जल्दी हो सके एक पट्टी से दर्पण में परिवर्तित करें। जबकि ZFS सभी डेटा की जांच करेगा और मक्खी पर (या स्क्रब के दौरान) त्रुटियों का पता लगाएगा, यह इसके बारे में कुछ भी करने में सक्षम नहीं होगा (प्रतियों का उपयोग किए बिना = 2 जो डिस्क उपयोग को दोहराएगा)। आपको केवल यह बताने के लिए छोड़ दिया जाएगा कि फाइलों में त्रुटियां हैं (शायद आपकी VM डिस्क छवियां) जो आप उन फ़ाइलों को हटाने और फिर से बनाने के बिना बहुत कुछ नहीं कर पाएंगे।


"आप इसे केवल यह बताने के लिए छोड़ देंगे कि फाइलों में त्रुटियां हैं ... जिसके बारे में आप बहुत कुछ नहीं कर पाएंगे" यह एक अच्छी राय है, और मैं इसकी सराहना करता हूं। उस ने कहा, जहां मेरा रात का बैकअप आता है, क्योंकि यह मेरे और मूक डेटा भ्रष्टाचार के बीच में कुछ भी नहीं खड़ा है, इसलिए भले ही ZFS ने मुझे फ़ाइल या इसके एक हिस्से को पढ़ने से मना कर दिया जब तक कि मैं इसे पुनर्स्थापित नहीं करता (ज्ञात अच्छा) ) बैकअप, यह डेटा अखंडता आश्वासनों में एक बड़ा सुधार है।
एक CVn

फ़ाइल आकार के रूप में, नहीं, 31 जीबी बिल्कुल निष्पक्ष बहुत बड़ा है (हालांकि यह अभी भी ~ मेरी कुल प्रणाली भंडारण क्षमता के 1.2% है), लेकिन मेरी चिंता यह है कि गाय की रेखा के साथ अधिक था प्रणाली को कॉपी करना होगा सब है कि डेटा की आगे और पीछे लगातार, एक गलत धारणा जिसे जेम्सरन ने जल्दी ठीक किया
बजे एक CVn

1

आपके उपयोग के मामलों और वीएम के आधार पर मैं निम्नलिखित पर विचार करूंगा। होस्ट ऑपरेटिंग सिस्टम उन फ़ाइलों का ध्यान रखें जिन्हें आप ZFS वॉल्यूम पर स्टोर कर रहे हैं।

यदि संभव हो, तो प्रत्येक वीएम के लिए सिर्फ एक LUN बनाएं, जिसमें केवल ऑपरेटिंग सिस्टम और आवश्यक बाइनरी फाइलें हों। और एनएफएस, सांबा या आईएससीएसआई (या टिप्पणियों में उल्लिखित के रूप में zvols) के माध्यम से व्यक्तिगत डेटा के लिए स्टोरेज स्टैस के रूप में प्रस्तुत करें। ZFS चेकसमिंग के साथ हर फ़ाइल का ट्रैक रखने में सक्षम है, और ect के समय का उपयोग करता है। बेशक अगर गति इतनी महत्वपूर्ण नहीं है तो आप कुछ डेटास्टोर्स पर कम्प्रेशन को सक्षम भी कर सकते हैं। लाभ एक और फाइलसिस्टम की एक लापता परत होगी। यदि आप दूसरे वर्चुअल हार्डड्राइव के लिए एक LUN बनाते हैं और उस पर एक NTFS फाइलसिस्टम को बनाते हैं, तो ZFS को एक बड़ा बाइनरी ब्लॉब को संभालना पड़ता है जो किसी भी सामग्री या फ़ाइलों को नहीं जानता है, और इसलिए वह ZIL या ARC कैश का लाभ नहीं उठा सकता है उसी तरह से हवाई जहाज की फाइलें।

ACLs का उल्लेख करते हुए, ZFS NFSv4 या सांबा (यदि सक्षम है) के माध्यम से ACL का उपयोग करने में सक्षम है। मेरा मानना ​​है कि मैं FreeBSD पर ZFS का उपयोग करता हूं, और यह आश्वासन नहीं दे सकता कि ZFS संस्करणों पर सांबास ACLs संभोग को कैसे सक्षम किया जाए। लेकिन मुझे यकीन है कि यह कोई बड़ी बात नहीं होनी चाहिए।

रीड कैश के साथ संयोजन में समर्पण एक बड़ा लाभ है जब यह कुछ जगह बचाने और बड़े पैमाने पर रीड (बूट तूफान) को सुधारने की बात आती है क्योंकि सभी वीएम एक ही ब्लॉक को पढ़ना शुरू करते हैं।

वही VM और डेटास्टोर्स के लिए ZFS स्नैपशॉट के लिए जाता है। आप VM को फ्रीज करने के लिए, VM और Datastore का एक स्नैपशॉट ले सकते हैं और काम करना जारी रख सकते हैं, या केवल Datastore को बना सकते हैं, और VM को मूल एक का स्नैपशॉट प्रस्तुत करते हैं और कुछ सामान का परीक्षण करते हैं।

संभावनाएं ZFS के साथ अनंत हैं;)

संपादित करें: उम्मीद है कि मैंने इसे थोड़ा बेहतर बताया है

EDIT2: व्यक्तिगत राय: RAIDZ2 (RAID6) का उपयोग करने पर विचार करें क्योंकि आप दोहरी डिस्क विफलता का सामना कर सकते हैं! यदि आपके पास एक भी अतिरिक्त डिस्क शेष है, तो यह कभी भी गलत नहीं होगा, लेकिन त्वरित रिसाव के लिए दो डिस्क विफलताएं पर्याप्त होनी चाहिए। मैं यहां डिस्क स्थिति की निगरानी के लिए अपनी स्क्रिप्ट को पोस्ट करता हूं


मुझे यकीन नहीं है कि मुझे मिल जाएगा। क्या आप कह रहे हैं कि मुझे वीएम द्वारा ज़ीएफएस फाइल सिस्टम पर अलग-अलग फ़ाइलों के रूप में उपयोग की जाने वाली फाइलों को स्टोर करना चाहिए, बजाय एक डिस्क इमेज के? विभाजन, बूट सेक्टर, विशेषताओं के बारे में ऐसी क्या बातें हैं जिनके बारे में ZFS को लिनक्स संदर्भ में विंडोज एसीएल के बारे में पता नहीं है, ...? मैं या तो आपको गलत समझ रहा हूं, या आप मुझसे जो पूछ रहे हैं, उसके अलावा कुछ और जवाब दे रहे हैं। क्या आप कृपया इस प्रश्न को फिर से पढ़ सकते हैं और अपने उत्तर को स्पष्ट करने के लिए संपादित कर सकते हैं कि यह मेरे भंडारण प्रदर्शन की चिंता को कैसे संबोधित करता है?
बजे एक CVn

स्नैपशॉट के बारे में: वास्तव में वीएम को फ्रीज करना आवश्यक नहीं है। ZFS कॉपी-ऑन-राइट (COW) का उपयोग करता है, जिसका अर्थ है कि स्नैपशॉट तात्कालिक हैं और आपको पूरी डिस्क छवि प्रदान करेंगे। कुछ व्यवस्थापक MySQL & PostGRES डेटाबेस के लिए अपने डेटाबेस (जैसे कोई डाउनटाइम) को फ्रीज किए बिना उपयोग करते हैं, हालांकि अन्य पहले टेबल को फ्लश करते हैं। यदि आपको VM को फ्रीज करने की आवश्यकता है, तो ZFS स्नैपशॉट लेने में केवल कुछ सेकंड लगने चाहिए।
स्टीफन लासिवस्की

माइकल मुझे लगता है कि Daywalker zvols को संदर्भित कर रहा है जहां आप एक फाइल बना सकते हैं जो ब्लॉक डिवाइस की तरह काम करती है। मैं VMs के लिए NFS नहीं अलग-अलग zvols का उपयोग करूँगा (इस मामले में ऐसा लगता है कि यह सभी स्थानीय है, इसलिए फ़ाइल सिस्टम में केवल फ़ाइलें हैं)। हाँ, ज़्वॉल्स शांत हो सकते हैं लेकिन वे जटिलता की एक अतिरिक्त परत हैं। और ZFS स्नैपशॉट परिभाषा सुसंगत है। इसका मतलब यह नहीं है कि VM का OS जानता है कि उसे डिस्क पर डेटा फ्लश करने की आवश्यकता है लेकिन आपको फ़ाइल सिस्टम संगति उसी स्तर के साथ मिलेगी जैसे कि आपने VM पर बिजली खो दी है।
TheFiddlerWins

डेडअप बहुत संसाधन गहन है। संपीड़न का उपयोग करना और (वीएम के लिए) संभवतः आपको वीएम फ़ाइल सिस्टम में व्हाट्सएप के कारण बहुत अधिक स्थान वापस नहीं मिलेगा।
theFiddlerWins

@ MichaelKjörling बस मेरी पोस्ट को संपादित करें, बेहतर समझ की उम्मीद (TheFiddlerWins और Stefan Lasiewski की टिप्पणियों के साथ
Daywalker
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.