फाइलसिस्टम में 25TB + मूल्य की लाखों फाइलों को कुशलता से संग्रहित करने के टिप्स


11

कहते हैं कि आप 25 टीबी के साथ असम्बद्ध लॉग फ़ाइलों के साथ सामना कर रहे हैं और आपके पास 25 टीबी की सामूहिक मुफ्त भंडारण क्षमता के साथ 20 जिंस बॉक्स की एक सरणी है।

आप इन्हें कैसे स्टोर करेंगे?

a) किस फाइल सिस्टम को उपयोग करने के लिए वितरित किया?

बी) कौन सा संपीड़न / अपघटन प्रारूप / एल्गोरिथ्म?

c) लॉग फ़ाइल का आकार 1MB से अधिकतम 7MB तक सभी टेक्स्ट और बहुत सारे व्हाट्सएप हैं

d) उपयोग एक है) लोग पिछली से अधिक नवीनतम लॉग फाइल चाहते हैं, इसलिए b का उपयोग करने के लिए कैशिंग प्रणाली क्या है) लोग केवल लॉग फाइल पढ़ेंगे उन्हें हटाए नहीं जाएंगे c) लोग एक तिथि सीमा के विरुद्ध लॉग फ़ाइलों की सूची चाहते हैं

ई) कमोडिटी बॉक्स पर चलने वाला ऑपरेटिंग सिस्टम लिनक्स है,

च) बैकअप के लिए अच्छी तरह से हमारे पास एक स्टोरेज एरे है जो इसका ख्याल रखता है। तो सरणी से डेटा को पुनर्स्थापित करने की क्षमता मौजूद है।

मैं नहीं चाहता कि वे सीधे फाइल सिस्टम तक पहुंचें। मुझे क्या करना चाहिए ? मैं उन्हें इसके लिए REST आधारित API कैसे प्राप्त करूं?

कृपया आप 2 सेंट बख्शें और आप क्या करेंगे?

अंकुर


कमोडिटी बॉक्स किस ऑपरेटिंग सिस्टम पर चल रहे हैं? क्या आपको गलती सहिष्णुता की आवश्यकता है, या यदि आप एक बॉक्स पर संग्रहीत सभी डेटा खो देते हैं, तो क्या यह ठीक है?
मार्क हेंडरसन

@farseeker ने आपको सवालों के जवाब देने के लिए प्रश्न संपादित किया। साभार
अंकुर गुप्ता

बस प्रश्न को फिर से पढ़ें, और पहला सवाल जो मैं पूछूंगा वह यह है: अभी लॉग की 25TB फाइलें कहां संग्रहीत हैं, और क्या वे वहां रह सकते हैं?
मार्क हेंडरसन

एनएफएस फाइलसिस्टम पर @farseeker
अंकुर गुप्ता

कैसे के बारे में en.wikipedia.org/wiki/…
नील मैकगिन

जवाबों:


7

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

व्यक्तिगत रूप से मुझे ZFS पसंद है। इस मामले में, कम्प्रेशन, डिड्यू और फॉल्ट टॉलरेंस में निर्माण सहायक होगा। हालांकि, मुझे यकीन है कि डेटा को सेक करने के लिए कई अन्य तरीके हैं, जबकि यह गलती को सहिष्णु बनाता है।

काश मेरे पास सिफारिश करने के लिए एक वास्तविक टर्नकी वितरित फ़ाइल समाधान होता, मुझे पता है कि यह वास्तव में कीचड़ है लेकिन मुझे आशा है कि यह आपको सही दिशा में इंगित करता है।

संपादित करें: मैं अभी भी ZFS के लिए नया हूं और iSCSI की स्थापना कर रहा हूं, लेकिन जर्मनी में सूर्य से एक वीडियो देखकर याद किया गया जहां वे ZFS की गलती सहनशीलता दिखा रहे थे। उन्होंने तीन यूएसबी हब को कंप्यूटर से जोड़ा और प्रत्येक हब में चार फ्लैश ड्राइव लगाए। फिर किसी एक हब को स्टोरेज पूल से नीचे ले जाने से रोकने के लिए उन्होंने प्रत्येक हब से एक फ्लैश ड्राइव से युक्त राउड वॉल्यूम बनाया। फिर उन्होंने एक साथ चार जेडएफएस राउड वॉल्यूम को स्ट्रिप किया। इस तरह केवल चार फ्लैश ड्राइव का उपयोग समानता के लिए किया गया था। बेशक अनप्लग्ड वन हब और जिसने हर झूले को खराब कर दिया था, लेकिन सभी डेटा उपलब्ध थे। इस कॉन्फ़िगरेशन में चार ड्राइव तक खो सकते हैं, लेकिन केवल अगर कोई दो ड्राइव एक ही पूल में नहीं थे।

यदि इस कॉन्फ़िगरेशन का उपयोग प्रत्येक बॉक्स की कच्ची ड्राइव के साथ किया गया था, तो यह डेटा के लिए अधिक ड्राइव को संरक्षित करेगा और समानता के लिए नहीं। मैंने सुना है FreeNAS (या ISCSI के माध्यम से "कच्चे" तरीके से ड्राइव साझा करने में सक्षम हो सकता है), इसलिए मुझे लगता है कि लिनक्स भी ऐसा कर सकता है। जैसा कि मैंने कहा, मैं अभी भी सीख रहा हूं, लेकिन यह वैकल्पिक तरीका मेरे पिछले सुझाव की तुलना में ड्राइव समानता के दृष्टिकोण से कम बेकार होगा। बेशक, यह ZFS का उपयोग करने पर निर्भर करेगा जो मुझे नहीं पता कि क्या स्वीकार्य होगा। मुझे पता है कि आमतौर पर यह जानना सबसे अच्छा है कि आप क्या जानते हैं अगर आपको कुछ बनाने या बनाए रखने / सुधारने की ज़रूरत है, जब तक कि यह सीखने का अनुभव न हो।

आशा है कि यह बेहतर है।

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

संपादित करें: मुझे याद आया कि OpenAFS नामक एक वितरित फ़ाइल प्रणाली में आना । मैंने इसकी कोशिश नहीं की थी, मैंने केवल इसके बारे में कुछ पढ़ा था। शायद अन्य जानते हैं कि यह वास्तविक दुनिया में कैसे संभालता है।


4

सबसे पहले, लॉग फ़ाइलों को वास्तव में उच्च अनुपात में संपीड़ित किया जा सकता है। मुझे लगता है कि मेरी लॉग फ़ाइलें 10: 1 के अनुपात में संपीड़ित होती हैं। यदि वे 5: 1 के अनुपात में भी कंप्रेस करते हैं, तो यह केवल 5GB या आपकी संग्रहण क्षमता का 20% है।

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

  • अगर विंडोज यूजर्स फाइलों को सीधे एक्सेस कर रहे हैं तो जिप फाइल का इस्तेमाल करें।
  • अगर वे लिनक्स के माध्यम से पहुँचा जा सकता है और त्वरित विघटन महत्वपूर्ण है, तो gzip का उपयोग करें।
  • Bzip2 का उपयोग करें यदि वे लिनक्स के माध्यम से पहुँचा जा सकता है और सबसे छोटी संभव फ़ाइलों के लिए महत्वपूर्ण है।

इससे भी बड़ा सवाल यह है कि आप अपने उपयोगकर्ताओं को इन फ़ाइलों तक आसान पहुँच कैसे प्रदान करने जा रहे हैं? इसका एक भाग इस बात पर निर्भर करता है कि आपकी मशीनें कैसे कॉन्फ़िगर की गई हैं।

यदि आप एक एकल मशीन में पर्याप्त भंडारण कर सकते हैं, तो आप कुछ बहुत ही सरल काम कर सकते हैं, जैसे कि केवल पढ़ने के लिए विंडोज फ़ाइल शेयर। बस उपनिर्देशिकाओं में फ़ाइलों को व्यवस्थित करें, और आप जाने के लिए तैयार हैं।

यदि आप इन फ़ाइलों के लिए एक एकल फ़ाइल सर्वर नहीं बना सकते हैं, तो आप पा सकते हैं कि आपको एक वितरित फ़ाइल सिस्टम की आवश्यकता है। विंडोज में एक डिस्ट्रीब्यूटेड फाइल सिस्टम (DFS) है जो आपकी आवश्यकताओं के अनुरूप हो सकता है।

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


FYI करें: Windows DFS सिंक में कई सर्वर पर फाइल / फोल्डर रखने का एक तरीका है। यह आपको एक ही भंडारण ड्राइव के रूप में कई सर्वरों पर भंडारण का उपयोग करने की अनुमति नहीं देगा। microsoft.com/windowsserversystem/dfs/default.mspx
स्कॉट McClenning

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

2

कम एफएफ़टी एक डुप्लिकेटिंग, कम्प्रेसिंग फ़ाइल सिस्टम है। हालांकि यह पूरी समस्या को हल नहीं करेगा, यह बैकएंड के रूप में देखने लायक हो सकता है।


2

NFS के माध्यम से इन फ़ोल्डरों को निर्यात करें

पेड़ के रूप में एपाचे चल (दस्तावेज़ रूट के तहत) के साथ एक मशीन पर उन्हें माउंट करें

उन्हें संपीड़ित करने के लिए ज़िप का उपयोग करें- अच्छा संपीड़ित अनुपात, ज़िप को सभी ओएस से खोला जा सकता है

Apache में सूची फ़ाइलें -so आप उपयोगकर्ताओं को आसानी से उपयोग दे रहे हैं (लॉग फ़ाइलों को संपादित करने के लिए सही नहीं है, सही है)


1
Nfs + httpd पर सहमत हों, ज़िप पर असहमत हों। gzip http के साथ बेहतर तरीके से सहभागिता करता है।
तोबू

@ टोबू से gzip टिप्पणी के लिए +1 - सही कॉन्फ़िगरेशन के साथ, अपाचे gzip'ed फ़ाइलों को एक वेब ब्राउज़र को सेवा दे सकता है जो पारदर्शी रूप से विघटित होगा और उन्हें प्रदर्शित करेगा। उपयोगकर्ताओं को भी संपीड़न के बारे में जानने की जरूरत नहीं है।
क्रिस्टोफर कैशेल

0

आप कभी लॉग फ़ाइलों को संपीड़ित करने के बारे में सोचते हैं? फिर अंतिम उपयोगकर्ता के सामने उन्हें सेवा देने से पहले उन्हें अनसुना करने के लिए कुछ करें। हो सकता है एक तरह की CGI स्क्रिप्ट।


0

@ ठाकुर और @ पोर्च। मैं इन लॉग को संपीड़ित करने की आवश्यकता से दृढ़ता से सहमत हूं।

@ मुझे लगता है कि सरल योजना बेहतर है - इस प्रकार अंतिम उपयोगकर्ता के लिए httpd आदर्श के करीब है। और बैकएंड कोई भी हो सकता है।

मेरी राय है - लॉग को 2 समूहों में विभाजित करें - फ़ोल्डर 'पुराना' और 'नया'।

उन्हें http के दस्तावेज़ रूट में मिलाएं। बड़े शब्दकोश और ब्लॉक आकारों के साथ पुराने (या तो xz या 7z अभिलेखागार, सभी ओएस के लिए लोकप्रिय) के लिए मजबूत संपीड़न का उपयोग करें, ठोस अभिलेख भी हो सकते हैं।

नए लोगों के लिए कंप्रेसिंग fs का उपयोग करें: लेसफ़्स (आरडब्ल्यू, डेडुप्लीकेशन + लाइट कम्प्रेशन मेथड्स), फ्यूसेकोम्प्रेस 0.9.x (आरडब्ल्यू, लाइट टू स्ट्रांग कम्प्रेशन मेथड्स), बीट्रॉफ़्स / ज़ैफ़्स, स्क्वाफ़्स (आरओ, लाइट टू स्ट्रांग कम्प्रेशन मेथड्स, कुछ डिडुप, यूज़) नए घुमाए गए लॉग के लिए)।

तुम भी पारदर्शी रूप से संकुचित एफएस (fusecompress, lessfs, btrfs / zfs) में लॉग लिख सकते हैं। लिखा जा रहा है लॉग करने के लिए httpd द्वारा आर / ओ का उपयोग प्रदान करें। वे उपयोगकर्ताओं के लिए पारदर्शी होंगे और उनके लिए पारदर्शी रूप से विघटित होंगे।

Fusecompress के बारे में चेतावनी: 1) केवल 0.9.x का उपयोग करें - यह स्थिर है। यहां से क्लोन करें https://github.com/hexxellor/fusecompress

बाद के संस्करण या तो lzma का समर्थन नहीं करते हैं या डेटा खो देते हैं।

2) यह एक फ़ाइल को संपीड़ित करने के लिए केवल 1 सीपीयू कोर का उपयोग करता है, इस प्रकार यह धीमा हो सकता है।

प्रत्येक लॉग को 'नए' फ़ोल्डर में, कुछ समय (कई महीनों) से पुराना और 'पुराने' में ले जाएँ।

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