उपयोगकर्ता डेटा दो काफी बड़े (> 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 के कैशिंग ने प्रदर्शन में थोड़ा सुधार किया है। मैं पूर्णता के लिए कुछ प्रदर्शन डेटा प्राप्त करने का प्रयास करूंगा।