क्या आप अमेज़न ईबीएस को कई उदाहरणों में संलग्न कर सकते हैं?


138

वर्तमान में हम एक mysql सर्वर और फाइलरवर तक पहुँचने वाले कई webservers का उपयोग करते हैं। क्लाउड पर जाने को देखते हुए, क्या मैं इसी सेटअप का उपयोग कर सकता हूं और EBS को कई मशीन इंस्टेंसेस में संलग्न कर सकता हूं या दूसरा उपाय क्या है?


दिया गया उत्तर नहीं है। लेकिन उद्धृत कारण मुझे गुस्सा दिला रहे हैं। हर कोई "यह एक ही हार्ड ड्राइव को एक से अधिक कंप्यूटर पर माउंट करने जैसा होगा" - और मैं जाता हूं "और इसलिए क्या?" SCSI या एक FibreChannel सैन के साथ हम हर समय ऐसा करते हैं, जो कुल मिलाकर समझ में आता है। उदाहरण के लिए केवल पढ़ने के लिए एक ही डेटा पर कई सर्वरों के माउंट। Oracle और अन्य बड़े RDBM को क्लस्टर मोड में चलाने के लिए डिज़ाइन किया गया है, जहाँ कई सर्वर एक ही भौतिक संग्रहण का उपयोग करते हैं। यह बहुत तेज हो सकता है। ईबीएस / एनएफएस वीनरी स्लो है, विकल्प नहीं। लेकिन आपका मन करता है, भले ही आप कई EC2 से जुड़ सकते हों, फिर भी आपका IOPS छाया रहेगा।
गनथर स्कैडो

फरवरी 2020 तक, आप कुछ प्रकार के EBS को कई EC2 उदाहरणों में संलग्न कर सकते हैं - aws.amazon.com/blogs/aws/…
Koshur

जवाबों:


135

अद्यतन (अप्रैल 2015) : इस उपयोग-मामले के लिए, आपको नए अमेज़ॅन इलास्टिक फ़ाइल सिस्टम (ईएफएस) को देखना शुरू करना चाहिए , जिसे ठीक उसी तरह से डिज़ाइन किया गया है जिस तरह से आप चाहते हैं। ईएफएस और ईबीएस के बीच महत्वपूर्ण अंतर यह है कि वे अलग-अलग सार प्रदान करते हैं: ईएफएस एनएफएसवी 4 प्रोटोकॉल को उजागर करता है, जबकि ईबीएस कच्चे ब्लॉक आईओ पहुंच प्रदान करता है।

नीचे आपको मेरी मूल व्याख्या मिलेगी कि क्यों कई मशीनों पर कच्चे ब्लॉक डिवाइस को सुरक्षित रूप से माउंट करना संभव नहीं है।


मूल पोस्ट (2011):

यहां तक ​​कि अगर आप एक से अधिक उदाहरणों से जुड़ा ईबीएस वॉल्यूम प्राप्त करने में सक्षम थे, तो यह एक _REALLY_BAD_IDEA_ होगा। कोको को उद्धृत करने के लिए, "यह एक ही बार में दो कंप्यूटरों में हार्ड ड्राइव का उपयोग करने जैसा है"

यह एक बुरा विचार क्यों है? ... जिस कारण आप एक वॉल्यूम को एक से अधिक उदाहरणों में संलग्न नहीं कर सकते, वह यह है कि ईबीएस एक "ब्लॉक स्टोरेज" अमूर्त प्रदान करता है, जिस पर ग्राहक ext2 / ext3 / etc जैसी फाइल सिस्टम चलाते हैं। इनमें से अधिकांश फाइल सिस्टम (उदाहरण के लिए, ext2 / 3, FAT, NTFS, आदि) को यह कहते हुए लिखा जाता है कि उनके पास ब्लॉक डिवाइस की अनन्य पहुंच है। एक ही फाइल सिस्टम तक पहुंचने वाले दो उदाहरणों में निश्चित रूप से आँसू और डेटा भ्रष्टाचार का अंत होगा।

दूसरे शब्दों में, एक ईबीएस वॉल्यूम को दोगुना करना केवल तभी काम करेगा जब आप एक क्लस्टर फाइल सिस्टम चला रहे हों, जिसे कई मशीनों के बीच ब्लॉक डिवाइस को साझा करने के लिए डिज़ाइन किया गया हो। इसके अलावा, यहां तक ​​कि यह पर्याप्त नहीं होगा। ईबीएस को इस परिदृश्य के लिए परीक्षण करने की आवश्यकता है और यह सुनिश्चित करने के लिए कि यह अन्य साझा ब्लॉक डिवाइस समाधानों के रूप में एक ही स्थिरता की गारंटी प्रदान करता है ... अर्थात, उस ब्लॉक को DOM0 कर्नेल, Xen लेयर जैसे मध्यवर्ती गैर-साझा स्तरों पर कैश नहीं किया गया है, और डोमू कर्नेल। और फिर कई क्लाइंट्स के बीच ब्लॉकों को सिंक्रोनाइज़ करने का प्रदर्शन विचार है - अधिकांश क्लस्टर किए गए फाइल सिस्टम को उच्च गति समर्पित SANs पर काम करने के लिए डिज़ाइन किया गया है, न कि एक सर्वश्रेष्ठ-प्रयास कमोडिटी ईथरनेट। यह बहुत सरल लगता है, लेकिन आप जो पूछ रहे हैं वह बहुत ही निरर्थक बात है।

वैकल्पिक रूप से, देखें कि क्या आपका डेटा साझाकरण परिदृश्य NFS, SMB / CIFS, SimpleDB, या S3 हो सकता है। ये समाधान सभी उच्च परत प्रोटोकॉल का उपयोग करते हैं जो एक साझा ब्लॉक डिवाइस सबसिस्टम के बिना फ़ाइलों को साझा करने के लिए अभिप्रेत हैं। कई बार ऐसा समाधान वास्तव में अधिक कुशल होता है।

आपके मामले में, आपके पास अभी भी एक एकल MySql उदाहरण / फाइलसेवर हो सकता है जो कई वेब फ्रंट-एंड द्वारा एक्सेस किया जाता है। उस फाइलरवर को एक ईबीएस वॉल्यूम पर डेटा स्टोर कर सकते हैं, जिससे आप रात में स्नैपशॉट बैकअप ले सकते हैं। यदि फाइलसेवर को चलाने वाला इंस्टेंस खो जाता है, तो आप EBS वॉल्यूम को अलग कर सकते हैं और इसे एक नए फाइलर के उदाहरण के लिए रीएटच कर सकते हैं और मिनटों में वापस आ सकते हैं।

"फाइल सिस्टम के रूप में S3 जैसा कुछ है?" - हां और ना। हां, s3fs जैसे 3 पार्टी समाधान हैं जो "ठीक" काम करते हैं, लेकिन हुड के तहत उन्हें अभी भी प्रत्येक पढ़ने / लिखने के लिए अपेक्षाकृत महंगी वेब सेवा कॉल करना पड़ता है। एक साझा उपकरण के लिए, महान काम करता है। एचएससी की दुनिया में आप जिस तरह के क्लस्टर एफएस का उपयोग करते हैं, उसके लिए एक मौका नहीं है। बेहतर करने के लिए, आपको एक नई सेवा की आवश्यकता होगी जो एनएफएस की तरह एक द्विआधारी कनेक्शन-उन्मुख प्रोटोकॉल प्रदान करती है। उचित प्रदर्शन और व्यवहार के साथ ऐसी बहु-माउंटेड फाइल सिस्टम की पेशकश करना EC2 के लिए एक महान सुविधा ऐड-ऑन होगा। मैं लंबे समय से अमेज़ॅन के लिए कुछ ऐसा बनाने के लिए एक वकील था।


1
NFS (और समान दृष्टिकोण SMB) के साथ समस्या एक मशीन एक सर्वर के रूप में कार्य करेगी (जिस पर फ़ाइल सिस्टम भौतिक रूप से माउंट किया जाएगा)। नीचे जाने वाली मशीन ईबीएस मात्रा (या डिस्क नीचे जाने के लिए) का कारण होगी। फाइल सिस्टम के रूप में S3 जैसा कुछ है?
sheki

1
बस स्पष्ट करने के लिए - यदि एक ईबीएस मात्रा एक उदाहरण से जुड़ी है और उदाहरण भयावह रूप से मर जाता है, तो ईबीएस की मात्रा ठीक होगी। यह केवल इस अर्थ में "नीचे" जाएगा कि इसे एक्सेस करने के लिए, आपको इसे डाउन इंस्टेंस से अलग करना होगा और इसे एक नए इंस्टेंस पर रीटच करना होगा।
डेव डॉपसन

"... आँसू और डेटा भ्रष्टाचार में लगभग निश्चित रूप से समाप्त हो जाएगा।" क्लासिक। @DaveDopson
Beachhouse

5
जो कोई भी इस उत्तर को देखता है, वह जानता है कि अमेज़ॅन ने केवल ईएफएस जारी किया है जो साझा ऑटो-विस्तार ड्राइव की अनुमति देता है जिसे कई उदाहरणों पर एनएफएस पर रखा जा सकता है।
जोश स्ट्रेंज

@JoshStrange - सिर के लिए धन्यवाद। अपडेट की गई पोस्ट।
डेव डॉपसन

78

अद्यतन (2020) यह अब संभव है!

एक ही उपलब्धता क्षेत्र के भीतर एडब्ल्यूएस नाइट्रो में चल रहे नवीनतम उदाहरण प्रकारों के साथ अब यह संभव है। कुछ कैविट हैं लेकिन यह कुछ उपयोग मामलों के लिए बहुत अच्छा है, जिन्हें ईबीएस की गति की आवश्यकता होती है और जहां ईएफएस संभव नहीं है।

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html


मूल पोस्ट (2009)

नहीं, यह दो कंप्यूटरों में हार्ड ड्राइव का उपयोग करने जैसा है।

यदि आप साझा डेटा चाहते हैं, तो आप एक सर्वर सेटअप कर सकते हैं जिसे आपके सभी इंस्टेंस एक्सेस कर सकते हैं। यदि आप अपने सभी उदाहरणों के लिए एक सरल भंडारण क्षेत्र चाहते हैं, तो आप वितरित और स्केलेबल डेटा संग्रहीत करने के लिए अमेज़न की S3 संग्रहण सेवा का उपयोग कर सकते हैं।

क्लाउड पर जा रहे हैं, आपके पास एक ही सेटअप हो सकता है, लेकिन आप संभवतः फाइलरवर को S3 से बदल सकते हैं, या आपके सभी इंस्टेंस आपके फाइलरवर से कनेक्ट हो सकते हैं।

आपके पास बहुत सारे विकल्प हैं, लेकिन उदाहरणों के बीच एक हार्ड ड्राइव साझा करना शायद सबसे अच्छा विकल्प नहीं है।


14

नहीं, ईबीएस डॉक्स के अनुसार: "एक मात्रा को एक बार में केवल एक उदाहरण से जोड़ा जा सकता है"।

वर्तमान में आप साझा संग्रहण का उपयोग कैसे कर रहे हैं? यदि यह केवल फाइलर से फाइलों को परोसने के लिए है, तो क्या आपने एक सिस्टम स्थापित करने पर विचार किया है ताकि आप उन फाइलों को वेबसर्वर्स की सेवा करने के बजाय फाइलसेवर पर एक प्रक्रिया के लिए कुछ अनुरोधों को प्रॉक्सी कर सकें?


2
यहाँ उस उद्धरण के लिए एक लिंक दिया गया है: aws.amazon.com/articles/1667 । लेख के नीचे FAQ देखें। मुझे आश्चर्य होता है कि अनुलग्नकों की aws ec2 describe-volumesएक सरणी क्यों लौटाता है ।
मार्क बेरी

4

मुझे पूरा यकीन है कि आप नहीं कर सकते, लेकिन आप एक ईबीएस को क्लोन कर सकते हैं और इसे दूसरे उदाहरण में संलग्न कर सकते हैं।

यह निश्चित डेटासेट के लिए, या 'वास्तविक' डेटा पर परीक्षण के लिए उपयोगी है, लेकिन एक एकल ब्लॉक स्टोर पर संचालित करने के लिए 1 से अधिक आवृत्ति की अनुमति नहीं देता है


4

MySQL सर्वर और फ़ाइल सर्वर तक पहुँचने वाले कई वेब सर्वर AWS में सामान्य हैं। उपर्युक्त वास्तुकला के लिए अपनाई जाने वाली कुछ सर्वोत्तम प्रथाएँ हैं:

बिंदु 1) EC2 पर MySQL को AWS में async / अर्ध सिंक मोड में मास्टर-स्लेव के रूप में सेटअप किया जा सकता है। उच्च प्रदर्शन DB के लिए RAID 0 में EBS-OPT + PIOPS की सिफारिश की गई है

प्वाइंट 2) वैकल्पिक रूप से आप अमेज़ॅन आरडीएस + मल्टी-एज़ मोड का उपयोग कर सकते हैं। रीडिंग स्केलिंग के लिए मल्टीपल RDS रीड रेप्लिका को MySQL RDS से जोड़ा जा सकता है।

बिंदु 3) EBS वॉल्यूम को एक साथ कई EC2 में संलग्न नहीं किया जा सकता है। आप ईबीएस का उपयोग करके अमेजन EC2 पर GlusterFS पर आधारित फाइल सर्वर बना सकते हैं। एक से अधिक वेब सर्वर AWS इन्फ्रा पर एक साथ एकल GlusterFS से बात कर सकते हैं।

बिंदु 4) यदि आपके आवेदन को एस 3 के साथ फाइल स्टोर के रूप में एकीकृत किया जा सकता है, तो यह आर्किटेक्चर में स्थिरता लाने के कारण पसंद किया जाता है। आप अपने आवेदन से S3fuse जैसे टूल का उपयोग करके S3 तक भी पहुंच सकते हैं।



2

IT दुनिया में कुछ ऐसा है जिसे Clustered Filesystem, Redhat GFS, Oracle OCFS2, Veritas CFS ...


ddopson के उत्तर के लिए टिप्पणी की जाँच करें
sheki

1
@sheki मुझे लगता है कि ddopson के जवाब के लिए आपकी टिप्पणी क्लस्टर किए गए फाइल सिस्टम के लिए पूरी तरह अप्रासंगिक है। क्लस्टर किए गए फ़ाइल सिस्टम एक साथ कई सर्वरों द्वारा माउंट किए जाने के लिए डिज़ाइन किए गए हैं। एक अव्यवस्था की पूरी बात विफलता के एकल बिंदुओं से बचने के लिए है।
रयान

2

संक्षिप्त उत्तर एक श्रेणीगत "नहीं" है। दूसरों ने इसे ऊपर कहा है।

"हां" कहने वालों ने सवाल का जवाब नहीं दिया, लेकिन एक अलग सवाल है। यदि EFS सिर्फ एक NFS सेवा है, तो यह मूल रूप से कहे गए प्रश्न का उत्तर नहीं है। और इससे कोई फर्क नहीं पड़ता कि ईएफएस "सभी क्षेत्रों में लुढ़का हुआ है" या नहीं, क्योंकि आप अपना एनएफएस उदाहरण काफी कर सकते हैं, और कई सर्वरों को एनएफएस माउंट कर सकते हैं। यह कोई नई बात नहीं है, हमने 1992 में पहले ही ऐसा कर लिया है। SMB और sshfs, ये सभी रिमोट फाइल सिस्टम के रूप में ड्राइव को माउंट करने के तरीके हैं।

जिन लोगों ने कहा "आप ऐसा क्यों करना चाहेंगे" या "यह सब आँसू में समाप्त हो जाएगा" गलत हैं। हम दशकों से कई सर्वरों के लिए कई डिस्क को बढ़ा रहे हैं। यदि आपने कभी SAN (स्टोरेज एरिया नेटवर्क) के साथ काम किया है तो एक ही डिवाइस को कई नोड्स में संलग्न करने की क्षमता आमतौर पर FibreChannel SAN के माध्यम से पूरी तरह से सामान्य है। वर्चुअलाइजेशन / क्लाउड सर्वर बनने से पहले एक दशक पहले सर्वर चलाने वाले किसी भी व्यक्ति के पास कुछ जोखिम होता है।

जल्द ही वहाँ क्लस्टर्ड फाइल सिस्टम थे जहाँ दो सिस्टम ठीक उसी वॉल्यूम में पढ़ और लिख सकते थे। मेरा मानना ​​है कि यह VAX और अल्फा VMS समय के साथ इतिहास में पहले ही शुरू हो गया था। क्लस्टर की गई फ़ाइल सिस्टम सीधे वितरित ब्लॉक को हेरफेर करने में सक्षम होने के लिए एक वितरित पारस्परिक बहिष्करण योजना का उपयोग करती है।

एक ही डिस्क को कई नोड्स तक बढ़ने का लाभ गति है और विफलताओं के एकल बिंदुओं को कम करता है।

अब, क्लस्टर्ड फ़ाइल सिस्टम "उपभोक्ता" होस्टिंग व्यवसाय में बहुत लोकप्रिय नहीं हुआ है, यह सच है। और वे जटिल हैं और कुछ नुकसान हैं। लेकिन आपको कई कंप्यूट नोड्स से जुड़ी डिस्क का उपयोग करने के लिए एक संकुल फाइल सिस्टम की भी आवश्यकता नहीं है। यदि आप केवल-पढ़ने के लिए ड्राइव चाहते हैं तो क्या होगा? तुम भी एक संकुल फाइल सिस्टम की जरूरत नहीं है! आप सिर्फ अपने भौतिक उपकरणों को ही पढ़ते हैं। फिर आप 2 या 10 EC2 सर्वरों को माउंट करते हैं और वे सभी उस डिवाइस से सीधे पढ़ सकते हैं!

तेजी से स्केलिंग खेतों का निर्माण करते समय क्लाउड सर्वर की दुनिया में इसके लिए एक स्पष्ट उपयोग का मामला है। आप अपने मुख्य सिस्टम डिस्क को सभी तैयार कर सकते हैं और प्रत्येक सर्वर के लिए बस एक बहुत छोटा बूट और कॉन्फ़िगरेशन डिस्क का उपयोग कर सकते हैं। आप उनमें से सभी को एक ही बूट डिस्क से बूट कर सकते हैं, और रीड-राइट मोड में / के रिमाउंट से ठीक पहले, आप 3 परतों के साथ एक यूनियन-एफएस डाल सकते हैं:

  1. मुख्य रीड-ओनली सिस्टम डिस्क, बूट, कर्नेल और यूजरलैंड इंस्टॉलेशन के साथ
  2. एक कॉन्फ़िगरेशन फ़ाइल सिस्टम, केवल कुछ फ़ाइलों (ज्यादातर / आदि) में जो व्यक्तिगत सर्वर के लिए विशिष्ट हैं। इस डिस्क को किसी अन्य सर्वर द्वारा एक नया उदाहरण बूट करने के लिए तैयार करने के लिए लिखा जा सकता है। यहाँ उदाहरण फ़ाइलें / etc / hostname और बस बहुत कम विन्यास फाइल होंगी जो अलग-अलग नोड के लिए बने रहने की आवश्यकता है।
  3. लिखने योग्य डिस्क, जिसकी आपको आवश्यकता नहीं हो सकती है, मेमोरी फाइल सिस्टम के रूप में सिर्फ / tmp हो सकती है।

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

पुनश्च: मैं टिप्पणी के रूप में इसका एक छोटा संस्करण प्रस्तुत करना पसंद करूंगा, लेकिन मैं मूर्खतापूर्ण 51 क्रेडिट बिंदुओं की सीमा के कारण नहीं कर सकता, इसलिए मुझे उसी आवश्यक "नहीं" के साथ उत्तर लिखना होगा, लेकिन अपनी बात शामिल करने के लिए कि यह क्यों है एक प्रासंगिक प्रश्न जो एक योग्य उत्तर प्राप्त नहीं कर रहा है।

PPS: मैंने अभी किसी को StackExchange उल्लेख iSCSI पर पाया। iSCSI कुछ हद तक NFS जैसा है, लेकिन तार्किक रूप से एक FibreChannel SAN जैसा है। आप भौतिक ब्लॉक उपकरणों तक पहुंच (और साझा) करते हैं। यह बूट डिस्क साझा करना आसान बना देगा ताकि आपको बूट नेटवर्क बूटिंग सेट करने की आवश्यकता न हो जो कि बारीक हो। लेकिन तब AWS पर, कोई भी नेटवर्क बूटिंग उपलब्ध नहीं है।


1

हालांकि ईबीएस ने पहले केवल एक ईसी 2 उदाहरण को दिए गए वॉल्यूम से जुड़ा होने की अनुमति दी है, बहु-संलग्न अब संभव है, कम से कम io1 संस्करणों के लिए। अधिक जानकारी के लिए, यह AWS ब्लॉग पोस्ट देखें


0

आप अन्य उदाहरणों में उस वॉल्यूम में वॉल्यूम और sshfs के साथ एक उदाहरण क्यों नहीं बनाएंगे?


-3

आप पूरी तरह से AWS में कई सर्वरों पर एक ड्राइव का उपयोग कर सकते हैं। मैं बाहरी ड्राइव को माउंट करने और EC2 में कई सर्वरों के साथ साझा करने के लिए sshfs का उपयोग करता हूं।

जिस कारण मुझे एक ही ड्राइव को एक से अधिक सर्वर से कनेक्ट करने की आवश्यकता है, वह यह है कि स्थानीय को खींचने से पहले अपने सभी बैकअप को रखने के लिए एक ही जगह हो।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.