वर्तमान में हम एक mysql सर्वर और फाइलरवर तक पहुँचने वाले कई webservers का उपयोग करते हैं। क्लाउड पर जाने को देखते हुए, क्या मैं इसी सेटअप का उपयोग कर सकता हूं और EBS को कई मशीन इंस्टेंसेस में संलग्न कर सकता हूं या दूसरा उपाय क्या है?
वर्तमान में हम एक mysql सर्वर और फाइलरवर तक पहुँचने वाले कई webservers का उपयोग करते हैं। क्लाउड पर जाने को देखते हुए, क्या मैं इसी सेटअप का उपयोग कर सकता हूं और EBS को कई मशीन इंस्टेंसेस में संलग्न कर सकता हूं या दूसरा उपाय क्या है?
जवाबों:
अद्यतन (अप्रैल 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 के लिए एक महान सुविधा ऐड-ऑन होगा। मैं लंबे समय से अमेज़ॅन के लिए कुछ ऐसा बनाने के लिए एक वकील था।
एक ही उपलब्धता क्षेत्र के भीतर एडब्ल्यूएस नाइट्रो में चल रहे नवीनतम उदाहरण प्रकारों के साथ अब यह संभव है। कुछ कैविट हैं लेकिन यह कुछ उपयोग मामलों के लिए बहुत अच्छा है, जिन्हें ईबीएस की गति की आवश्यकता होती है और जहां ईएफएस संभव नहीं है।
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html
नहीं, यह दो कंप्यूटरों में हार्ड ड्राइव का उपयोग करने जैसा है।
यदि आप साझा डेटा चाहते हैं, तो आप एक सर्वर सेटअप कर सकते हैं जिसे आपके सभी इंस्टेंस एक्सेस कर सकते हैं। यदि आप अपने सभी उदाहरणों के लिए एक सरल भंडारण क्षेत्र चाहते हैं, तो आप वितरित और स्केलेबल डेटा संग्रहीत करने के लिए अमेज़न की S3 संग्रहण सेवा का उपयोग कर सकते हैं।
क्लाउड पर जा रहे हैं, आपके पास एक ही सेटअप हो सकता है, लेकिन आप संभवतः फाइलरवर को S3 से बदल सकते हैं, या आपके सभी इंस्टेंस आपके फाइलरवर से कनेक्ट हो सकते हैं।
आपके पास बहुत सारे विकल्प हैं, लेकिन उदाहरणों के बीच एक हार्ड ड्राइव साझा करना शायद सबसे अच्छा विकल्प नहीं है।
नहीं, ईबीएस डॉक्स के अनुसार: "एक मात्रा को एक बार में केवल एक उदाहरण से जोड़ा जा सकता है"।
वर्तमान में आप साझा संग्रहण का उपयोग कैसे कर रहे हैं? यदि यह केवल फाइलर से फाइलों को परोसने के लिए है, तो क्या आपने एक सिस्टम स्थापित करने पर विचार किया है ताकि आप उन फाइलों को वेबसर्वर्स की सेवा करने के बजाय फाइलसेवर पर एक प्रक्रिया के लिए कुछ अनुरोधों को प्रॉक्सी कर सकें?
aws ec2 describe-volumes
एक सरणी क्यों लौटाता है ।
मुझे पूरा यकीन है कि आप नहीं कर सकते, लेकिन आप एक ईबीएस को क्लोन कर सकते हैं और इसे दूसरे उदाहरण में संलग्न कर सकते हैं।
यह निश्चित डेटासेट के लिए, या 'वास्तविक' डेटा पर परीक्षण के लिए उपयोगी है, लेकिन एक एकल ब्लॉक स्टोर पर संचालित करने के लिए 1 से अधिक आवृत्ति की अनुमति नहीं देता है
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 तक भी पहुंच सकते हैं।
ईबीएस ने केवल यह घोषणा की है: https://aws.amazon.com/about-aws/whats-new/2020/02/ebs-multi-attach-available-provisioned-iops-ssd-volumes/
IT दुनिया में कुछ ऐसा है जिसे Clustered Filesystem, Redhat GFS, Oracle OCFS2, Veritas CFS ...
संक्षिप्त उत्तर एक श्रेणीगत "नहीं" है। दूसरों ने इसे ऊपर कहा है।
"हां" कहने वालों ने सवाल का जवाब नहीं दिया, लेकिन एक अलग सवाल है। यदि EFS सिर्फ एक NFS सेवा है, तो यह मूल रूप से कहे गए प्रश्न का उत्तर नहीं है। और इससे कोई फर्क नहीं पड़ता कि ईएफएस "सभी क्षेत्रों में लुढ़का हुआ है" या नहीं, क्योंकि आप अपना एनएफएस उदाहरण काफी कर सकते हैं, और कई सर्वरों को एनएफएस माउंट कर सकते हैं। यह कोई नई बात नहीं है, हमने 1992 में पहले ही ऐसा कर लिया है। SMB और sshfs, ये सभी रिमोट फाइल सिस्टम के रूप में ड्राइव को माउंट करने के तरीके हैं।
जिन लोगों ने कहा "आप ऐसा क्यों करना चाहेंगे" या "यह सब आँसू में समाप्त हो जाएगा" गलत हैं। हम दशकों से कई सर्वरों के लिए कई डिस्क को बढ़ा रहे हैं। यदि आपने कभी SAN (स्टोरेज एरिया नेटवर्क) के साथ काम किया है तो एक ही डिवाइस को कई नोड्स में संलग्न करने की क्षमता आमतौर पर FibreChannel SAN के माध्यम से पूरी तरह से सामान्य है। वर्चुअलाइजेशन / क्लाउड सर्वर बनने से पहले एक दशक पहले सर्वर चलाने वाले किसी भी व्यक्ति के पास कुछ जोखिम होता है।
जल्द ही वहाँ क्लस्टर्ड फाइल सिस्टम थे जहाँ दो सिस्टम ठीक उसी वॉल्यूम में पढ़ और लिख सकते थे। मेरा मानना है कि यह VAX और अल्फा VMS समय के साथ इतिहास में पहले ही शुरू हो गया था। क्लस्टर की गई फ़ाइल सिस्टम सीधे वितरित ब्लॉक को हेरफेर करने में सक्षम होने के लिए एक वितरित पारस्परिक बहिष्करण योजना का उपयोग करती है।
एक ही डिस्क को कई नोड्स तक बढ़ने का लाभ गति है और विफलताओं के एकल बिंदुओं को कम करता है।
अब, क्लस्टर्ड फ़ाइल सिस्टम "उपभोक्ता" होस्टिंग व्यवसाय में बहुत लोकप्रिय नहीं हुआ है, यह सच है। और वे जटिल हैं और कुछ नुकसान हैं। लेकिन आपको कई कंप्यूट नोड्स से जुड़ी डिस्क का उपयोग करने के लिए एक संकुल फाइल सिस्टम की भी आवश्यकता नहीं है। यदि आप केवल-पढ़ने के लिए ड्राइव चाहते हैं तो क्या होगा? तुम भी एक संकुल फाइल सिस्टम की जरूरत नहीं है! आप सिर्फ अपने भौतिक उपकरणों को ही पढ़ते हैं। फिर आप 2 या 10 EC2 सर्वरों को माउंट करते हैं और वे सभी उस डिवाइस से सीधे पढ़ सकते हैं!
तेजी से स्केलिंग खेतों का निर्माण करते समय क्लाउड सर्वर की दुनिया में इसके लिए एक स्पष्ट उपयोग का मामला है। आप अपने मुख्य सिस्टम डिस्क को सभी तैयार कर सकते हैं और प्रत्येक सर्वर के लिए बस एक बहुत छोटा बूट और कॉन्फ़िगरेशन डिस्क का उपयोग कर सकते हैं। आप उनमें से सभी को एक ही बूट डिस्क से बूट कर सकते हैं, और रीड-राइट मोड में / के रिमाउंट से ठीक पहले, आप 3 परतों के साथ एक यूनियन-एफएस डाल सकते हैं:
तो, हाँ सवाल बहुत समझ में आया, और दुर्भाग्य से इसका उत्तर (अभी भी) "नहीं" है। और कोई एनएफएस उस उपयोग के मामले के लिए एक महान प्रतिस्थापन नहीं है क्योंकि यह सिस्टम डिस्क से सभी रीड गतिविधि को दंडित करता है। हालाँकि, एनएफएस सिस्टम डिस्क से नेटवर्क बूट, ऊपर वर्णित उपयोग केस को लागू करने का एकमात्र विकल्प है। दुर्भाग्य से, नेटवर्क बूट एजेंट की स्थापना और एनएफएस केवल भौतिक ब्लॉक डिवाइस तक पहुंचने की तुलना में बहुत पेचीदा है।
पुनश्च: मैं टिप्पणी के रूप में इसका एक छोटा संस्करण प्रस्तुत करना पसंद करूंगा, लेकिन मैं मूर्खतापूर्ण 51 क्रेडिट बिंदुओं की सीमा के कारण नहीं कर सकता, इसलिए मुझे उसी आवश्यक "नहीं" के साथ उत्तर लिखना होगा, लेकिन अपनी बात शामिल करने के लिए कि यह क्यों है एक प्रासंगिक प्रश्न जो एक योग्य उत्तर प्राप्त नहीं कर रहा है।
PPS: मैंने अभी किसी को StackExchange उल्लेख iSCSI पर पाया। iSCSI कुछ हद तक NFS जैसा है, लेकिन तार्किक रूप से एक FibreChannel SAN जैसा है। आप भौतिक ब्लॉक उपकरणों तक पहुंच (और साझा) करते हैं। यह बूट डिस्क साझा करना आसान बना देगा ताकि आपको बूट नेटवर्क बूटिंग सेट करने की आवश्यकता न हो जो कि बारीक हो। लेकिन तब AWS पर, कोई भी नेटवर्क बूटिंग उपलब्ध नहीं है।
हालांकि ईबीएस ने पहले केवल एक ईसी 2 उदाहरण को दिए गए वॉल्यूम से जुड़ा होने की अनुमति दी है, बहु-संलग्न अब संभव है, कम से कम io1 संस्करणों के लिए। अधिक जानकारी के लिए, यह AWS ब्लॉग पोस्ट देखें ।
आप पूरी तरह से AWS में कई सर्वरों पर एक ड्राइव का उपयोग कर सकते हैं। मैं बाहरी ड्राइव को माउंट करने और EC2 में कई सर्वरों के साथ साझा करने के लिए sshfs का उपयोग करता हूं।
जिस कारण मुझे एक ही ड्राइव को एक से अधिक सर्वर से कनेक्ट करने की आवश्यकता है, वह यह है कि स्थानीय को खींचने से पहले अपने सभी बैकअप को रखने के लिए एक ही जगह हो।