2015-10-08 12 views
11

पर उपलब्ध डॉकर फ़ाइल सिस्टम स्थान को सीमित करने के लिए कैसे सामान्य परिदृश्य यह है कि हमारे पास सर्वर का समूह है और हम डॉकर का उपयोग करके उस पर वर्चुअल क्लस्टर सेट अप करना चाहते हैं।कंटेनर (0)

इसके लिए हमने विभिन्न सेवाओं (हाडोप, स्पार्क इत्यादि) के लिए डॉकफाइल बनाया है।

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

हमारे पास ext4 के साथ स्वरूपित लूपबैक फ़ाइलों का उपयोग करने का विचार था और इन निर्देशिकाओं पर इन्हें घुमाएं जिन्हें हम डॉकर कंटेनरों में वॉल्यूम्स के रूप में उपयोग करते हैं। हालांकि, यह एक बड़ा प्रदर्शन नुकसान का तात्पर्य है।

मुझे SO (Limit disk size and bandwidth of a Docker container) पर एक और प्रश्न मिला, लेकिन जवाब लगभग 1,5 वर्ष पुराने हैं - डॉकर के विकास की गति के बारे में - प्राचीन है।

किस तरह या भंडारण बैकएंड प्रति कंटेनर आधार पर

  • सीमा भंडारण करने के लिए हमें की अनुमति होगी
  • के पास नंगे धातु प्रदर्शन
  • सर्वर पुनर्विभाजन की आवश्यकता नहीं है ड्राइव है

उत्तर

22

आप स्मृति और सीपीयू पर runtime constraints निर्दिष्ट कर सकते हैं, लेकिन डिस्क स्थान नहीं।

डिस्क स्पेस पर बाधाओं को सेट करने की क्षमता का अनुरोध किया गया है (issue 12462, issue 3804), लेकिन अभी तक लागू नहीं किया गया है, क्योंकि यह अंतर्निहित फाइल सिस्टम ड्राइवर पर निर्भर करता है।

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

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


अद्यतन अगस्त 2016: नीचे दिखाया गया है, और issue 3804 comment, PR 24771 और PR 24807 में तो देखा मिला दिया गया है। docker run अब कंटेनर

$ docker run -it --storage-opt size=120G fedora /bin/bash 

यह (आकार) प्रति भंडारण चालक विकल्पों को सेट करने रचना समय में 120 ग्रा को कंटेनर rootfs आकार निर्धारित करने की अनुमति देगा अनुमति देते हैं।
यह विकल्प btrfs, overlay2, windowsfilter और ZFS ग्राफ ड्राइवरों

+0

चूंकि अब इस सक्षम करने के लिए एक विकल्प है, क्या यह क्या करता है जब पूर्ण devicemapper लिए ही उपलब्ध है?मैंने बस एक विशाल फ़ाइल बनाने की कोशिश की और, एक बार पूर्ण हो गया, कंटेनर कुछ भी नहीं कर सका (यहां तक ​​कि एलएस) और 'डॉकर आरएम मायिम' बिल्कुल काम नहीं करेगा। – Telokis

+0

@Ninetainedo अजीब। डॉकर का किस संस्करण का उपयोग कर रहे हैं, जिस पर ओएस? – VonC

+0

यदि आपको गिटूब को देखने में कोई फर्क नहीं पड़ता है, [यहां] (https://github.com/docker/docker/issues/31931) मैंने जो पूरा मुद्दा सबमिट किया है। – Telokis