नेटवर्क शेयर को कैश करने वाले एनएफएस सर्वर को कैसे सेटअप करें?


14

उपयोगकर्ता डेटा दो काफी बड़े (> 1 PB) ओपनस्टैक स्विफ्ट स्टोरेज क्लस्टर पर संग्रहीत है। उन्हें क्लस्टर ए और क्लस्टर बी होने दें

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

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

वर्तमान में, PoPs में से कोई भी ग्राहक स्थायी रूप से माउंटेड स्विफ्ट वर्चुअल फ़ाइल सिस्टम द्वारा उपयोगकर्ता डेटा तक पहुंच प्राप्त करता है , जो एक FUSE मॉड्यूल है जो स्विफ्ट ऑब्जेक्ट स्टोरेज को ब्लॉक डिवाइस (कम या ज्यादा) के रूप में माउंट करता है। हालाँकि, svfs यह सब पहले से स्थिर नहीं है और भविष्य में, क्लाइंट को NFS के माध्यम से कैश सर्वर तक पहुँच प्राप्त करनी चाहिए।

यह वांछित वास्तुकला की एक शाखा का एक चित्र है:

+------------------+                +------------------+    NFS   +------------------+
|    Cluster A     |     SVFS       |  Region 1 Cache  +---------->  R1 PoP a Client |
|                  +---------------->                  |          |                  |
|Persistent Storage|                |Ephemeral  Storage+----+     |Generates R/W Load|
+-----------------++                +------------------+    |     +------------------+
                  |                                         |
                  |                 +------------------+    | NFS +------------------+
                  |      SVFS       |  Region 2 Cache  |    +----->  R1 PoP b Client |
                  +----------------->                  |          |                  |
                                    |Ephemeral  Storage|          |Generates R/W Load|
                                    +------------------+          +------------------+

मैं NFS और svfs की स्थापना की मूल बातें से परिचित हूं।

प्रश्न यह है कि मैं कैश सर्वर को सभी उपलब्ध संसाधनों (एक निर्दिष्ट कैश विभाजन, रैम) का उपयोग करने के लिए आक्रामक तरीके से कैश करने के लिए सेटअप कर सकता हूं और svfs माउंट बिंदु पर लिखने से पहले जितना संभव हो उतना डेटा? मूल रूप से यह नीचे आता है: मैं एक निर्देशिका को लिनक्स में कैसे कैश कर सकता हूं?

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

परिशिष्ट 1 : मैंने कुछ सर्वरों पर svfs से S3QL के क्लस्टर माउंट मॉड्यूल को स्विच किया है। S3QL के कैशिंग ने प्रदर्शन में थोड़ा सुधार किया है। मैं पूर्णता के लिए कुछ प्रदर्शन डेटा प्राप्त करने का प्रयास करूंगा।


आप nfs क्लाइंट पर fs-cache को सक्षम करने का प्रयास कर सकते हैं: cyberciti.biz/faq/…
kofemann

कृपया serverfault.com/a/441443/345699 पर देखें । संभवतः यह आपकी खोज में मदद करेगा
स्टीवन K7FAQ

जवाबों:


1

यदि अंतर्निहित लिनक्स तंत्र (जैसे cachefsउर्फ cachefilesd) काम नहीं करता है और आपके पास बजट है, तो आप WAFS (विस्तृत क्षेत्र फ़ाइल सेवाओं) में देख सकते हैं। ये NFS (और CIFS) के आक्रामक कैशिंग के लिए डिज़ाइन किए गए उपकरण हैं, जो आमतौर पर WAN लिंक में शामिल विलंबता को छिपाने और छिपाने के लिए हैं।


1

मैं वास्तव में इस क्षेत्र का कोई विशेषज्ञ नहीं हूँ (लेकिन यह दिलचस्प है!)।

मैं हाल ही में LVM के लिए मुख्य रूप से dm-cache देख रहा हूँ, SSD के कैशिंग भाग के साथ। यहाँ रीडहाट का एक उदाहरण पाठ है जिसमें एक अच्छा अवलोकन है, लेकिन यह आरएच से बंधा नहीं है: https://www.redhat.com/en/blog/improving-read-performance-dm-cache

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