एक एसडी कार्ड पर जीएनयू / लिनक्स के लिए फाइल सिस्टम का विकल्प


31

मैं एक एसडी कार्ड पर चलने वाला एआरएम-आधारित सिस्टम हूं। यह वर्तमान में फाइल सिस्टम के रूप में ext3 का उपयोग करते हुए डेबियन जीएनयू / लिनक्स है। जैसा कि मैं सिस्टम को फिर से स्थापित करने के बारे में हूं, मैंने एक और फ्लैश-फ्रेंडली फाइल सिस्टम में बदलने के बारे में सोचना शुरू कर दिया। मैंने JFFS2, YAFFS2 और LogFS के बारे में सुना है, और वे सभी नौकरी के लिए अनुकूल हैं। तुम किसकी सिफारिश करना चाहोगे? इसके अलावा, मैंने सुना है कि SSD डिस्क को बेहतर सूट करने के लिए बहुत सारे ext4 सुधार हुए हैं; क्या मैं व्याख्या कर सकता हूं कि ext4 चलाने के रूप में बस ठीक होना चाहिए? मुझे उस मामले में विशेष रूप से सोचने की क्या आवश्यकता है?

मुझे लगता है कि प्रणाली का उपयोग महत्वपूर्ण है। लेकिन सामान्यता के लिए, कल्पना कीजिए कि यह मानक डेस्कटॉप सामान करेगा (भले ही यह एक छोटे एआरएम-आधारित सिस्टम को संक्रमित कर रहा है)।

किसी भी उत्तर के लिए धन्यवाद।

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

जवाबों:


18

फ्लैश फाइल सिस्टम के बारे में उत्कृष्ट लेख ।

फ्लैश फाइल सिस्टम के बारे में बात करते समय महत्वपूर्ण सवाल निम्नलिखित है: लेवलिंग क्या है? विकिपीडिया लेख । मूल रूप से, फ्लैश डिस्क पर आप सीमित संख्या में तब तक लिख सकते हैं जब तक कि ब्लॉक खराब न हो जाए। उसके बाद, फाइलसिस्टम (यदि हार्डवेयर में कोई अंतर्निहित पहनने वाला प्रबंधन नहीं है, जैसा कि आमतौर पर एसएसडी के मामले में होता है) उस ब्लॉक को अमान्य के रूप में चिह्नित करना चाहिए, और अब इसका उपयोग करने से बचें।

विशिष्ट फाइल सिस्टम (उदाहरण के लिए ReiserFS, NTFS, ext3 और इसी तरह) हार्ड डिस्क के लिए डिज़ाइन किए गए हैं, जिनकी ऐसी सीमाएँ नहीं हैं।

JFFS2

इसमें संपीड़न और सुरुचिपूर्ण पहनने के स्तर की सुरक्षा शामिल है।

YAFFS2

  • एकल चीज जो अंतर बनाती है: सफल umount के बाद लघु माउंट बार।
  • गुण एक बार संपत्ति लिखते हैं: एक बार डेटा एक ब्लॉक को लिखा जाता है, तो इसे फिर से लिखने की कोई आवश्यकता नहीं है। यह महत्वपूर्ण है, क्योंकि यह पहनने को कम करता है।

LogFS

  • बहुत परिपक्व नहीं है, लेकिन पहले से ही लिनक्स कर्नेल पेड़ में शामिल है।
  • समस्याओं के बिना JFFS2 / YAFFS2 की तुलना में बड़े फाइल सिस्टम का समर्थन करता है।

UBIFS

  • LogFS से अधिक परिपक्व
  • कैशिंग समर्थन लिखें
  • स्केलेबिलिटी पर: लेख । बड़े डिस्क पर, JFFS2 की तुलना में बेहतर प्रदर्शन

ext4

यदि कोई ड्राइवर या कार्ड (उदाहरण के लिए SSD ड्राइव में आंतरिक वियर लेवलिंग नहीं है, तो कम से कम आमतौर पर) लेवलिंग वियर को संभालते हैं, तो ext4 सबसे अच्छा विचार नहीं है, क्योंकि यह कच्चे फ़्लैश उपयोग के लिए अभिप्रेत नहीं है।

कौन सा सबसे अच्छा है?

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


6
धन्यवाद, यह बहुत जानकारीपूर्ण है! हालांकि, UBIFS वेबसाइट का "बड़ा लाल नोट" कहता है: "UBIFS के साथ काम करते समय एक बात लोगों को समझनी होगी कि UBIFS किसी भी पारंपरिक फाइल सिस्टम से बहुत अलग है - यह ब्लॉक डिवाइस के शीर्ष पर काम नहीं करता है (जैसे हार्ड ड्राइव) , MMC / SD कार्ड, USB फ्लैश ड्राइव, SSDs इत्यादि)। UBIFS को कच्चे फ़्लैश के शीर्ष पर काम करने के लिए डिज़ाइन किया गया था, जिसका ब्लॉक डिवाइसेस से कोई लेना-देना नहीं है। यही कारण है कि UBIFS MMC कार्ड और जैसे - पर काम नहीं करता है। बाहरी दुनिया के लिए ब्लॉक डिवाइस की तरह देखें क्योंकि वे हार्डवेयर में FTL (फ्लैश ट्रांसलेशन लेयर) सपोर्ट को लागू करते हैं। "
gspr

3
अच्छा जवाब, प्लस सैमसंग से F2FS है, यह भी बहुत आशाजनक प्रणाली, काफी नया था।
lzap

16
@gspr सही है: एसडी एक फ्लैश अनुवाद परत है, और JFFS2, YAFFS2, LOGFS और UBIFS सभी के लिए तैयार कर रहे हैं अप्रबंधित फ़्लैश। SD के लिए विकल्प पारंपरिक ब्लॉक डिवाइस फाइल सिस्टम हैं, जैसे ext2 / ext3 / ext4।
रॉबर्ट कैलहॉन

@ ऑली क्या SSD ड्राइव के लिए NILFS2 एक अच्छा विकल्प है?
सेबमा

12

मैं उसी समस्या का सामना कर रहा था और कुछ शोध भी किया था। आखिरकार मैंने ext2 के साथ जाने का फैसला किया।

ऐसा लगता है कि कुछ SDHC कार्ड हार्डवेयर लेयर पर अपने स्वयं के पहनने-लेवलिंग को लागू करते हैं। यदि आप एसडीएचसी कार्ड धारण कर सकते हैं जिसमें पहनने वाले लेवलिंग बिट-इन हैं।

फाइल-सिस्टम जो वियर-लेवलिंग प्रदान करते हैं, फ्लैश-लेवल वियर-लेवलिंग के साथ हस्तक्षेप कर सकते हैं, इसलिए यह वास्तव में फ्लैश के लिए उनका उपयोग करने के लिए खराब हो सकता है (आईबीएम लेख ऊपर की बातचीत के बारे में बताता है कि जेएफएफएस यह कैसे करता है, इसलिए यह स्पष्ट है कि यह काम नहीं करेगा फ्लैश स्तर के साथ WL)। मैंने तय किया कि मुझे ext3 की जर्नलिंग की आवश्यकता नहीं है क्योंकि मैं इस पर महत्वपूर्ण डेटा संग्रहीत नहीं कर रहा हूं और मैं आमतौर पर वैसे भी (क्रोन) नियमित रूप से बैकअप लेता हूं।

मैंने भी चीजों को गति देने के लिए tmpfs के रूप में / tmp और / var को माउंट किया। यदि आपके पास पर्याप्त रैम है तो आपको ऐसा करना चाहिए (लेकिन नियमित रूप से अपने लॉग को घुमाने या हटाने के लिए सुनिश्चित करें)

सुझाव: "नोएटाइम" विकल्प के साथ अपने एक्सट्रा एसडी कार्ड को माउंट करें


मेरे पास पुराने एसडी-कार्ड और ext2 (डेटा भ्रष्टाचार) के साथ समस्याएं हैं जो XFS पर स्विच करने के बजाय चले गए।
अलेक्जेंडर

1

मुझे नहीं पता कि यह आपके सिस्टम के प्रोफाइल में फिट बैठता है, लेकिन एक रीडायनली फाइल सिस्टम के साथ-साथ रीड-राइट पार्टीशन (या एक यूएसबी स्टिक जिसे आसानी से बदला जा सकता है) का उपयोग करने के बारे में क्या? इस तरह से आपके पास अपने OS के लिए एक तेज़ डिस्क होगी और इसे पहनते समय अपने rw स्टोरेज को आसानी से बदल सकते हैं।

और फिर वहाँ संघ है। जैसा कि मैंने समझा कि यह अलग-अलग फाइल सिस्टम को "ढेर" करता है (यानी एक आरडब्ल्यू एफएस के ऊपर एक आरओ एफएस)। अगर वहाँ एक पढ़ने के लिए उपयोग किया जाता है, तो जब तक हम जिस फ़ाइल को खोजते हैं, तब वह एफएस से टकराती है। जब लेखन पर लेखन पहली बार एफएस के लिए खोज करता है तो स्टैक उन पर उपयोग करता है।

मुझे ये लेख भी दिलचस्प लगे जो दिलचस्प हो सकते हैं: http://www.linux-mag.com/id/7357/ http://www.linux-mag.com/id/7345/

और SSDs का उपयोग करने के लिए युक्तियों के साथ दो लेख: http://danweinreb.org/blog/use-solid-state-disks-on-linux http://www.zdnet.com/blog/perlow/geek-sheet-a ... tweakers-गाइड करने के लिए ठोस राज्य-ड्राइव-SSDs और linux / 9190


1
ध्यान दें कि मैं वह नहीं हूं जिसने इस उत्तर को अस्वीकार किया है। इसमें सामान्य रूप से उपयोगी जानकारी होती है, लेकिन यह उस चीज से संबंधित नहीं है जिसकी मुझे आवश्यकता है। वैसे भी धन्यवाद :)
gspr

0

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

ओली द्वारा बहुत अच्छी तरह से प्रतिक्रिया व्यक्त की गई, और ओपी बहुत दिनांकित है, लेकिन फाइल सिस्टम मेरे पालतू पशु हैं मैं दूर नहीं रह सकता। superuser.com कुछ ऐसा नहीं है जिससे मैं पहले मिला था, मैं एक व्यवस्थापक नहीं हूं, लेकिन मैंने साइन अप किया है और मैं और अधिक यात्रा करने जा रहा हूं।

2011 के बाद से चीजें बहुत बदल गईं, लेकिन फिर भी मैंने USB कार्ड FAT को स्वरूपित किया, और 4Gb + फ़ाइलों को चारों ओर ले जाने के लिए USB ड्राइव का उपयोग किया। निश्चित रूप से संगतता का कारण सुरक्षा नहीं था (एस में एसडी के लिए बहुत कुछ, लेकिन मैं अपने 7z पर पासवर्ड का उपयोग करता हूं), और मैंने वास्तव में सीडी आईएसओ की तुलना में कुछ भी बड़ा नहीं किया, वे ज्यादातर एसक्यूएल स्क्रिप्ट के लिए थे और दैनिक रूप से पहले से ही भिन्न एन्क्रिप्टेड डेटाबेस स्नैपशॉट 7-ज़िप द्वारा मौत के करीब निचोड़ा हुआ।

इन दिनों मैं किसी भी एसडी को तेजी से पहनता हूं जो मैं जानता हूं। मैं अपने नियोक्ता पर प्रति घंटा बैकअप, स्वरूपित FAT के लिए कुछ उत्पादन मशीनों में एक USB छड़ी है। मैं हालांकि हर दिन उन पर नज़र रखता हूं और - आपने अनुमान लगाया - धार्मिक रूप से उन्हें हाथ से वापस (वे ऑफ लाइन सुरक्षित आईटीएआर सामान का निर्माण कर रहे हैं)। SSD ने कुछ खेल मैदान को समतल किया लेकिन मुझे अभी भी उन पर उतना भरोसा नहीं है जितना कि नियमित रूप से HD, और SD ऑप्टिकल से भी बदतर है। वे एक पल में खराब हो जाते हैं और नुकसान कुल होता है।

कोई भी फाइल सिस्टम जो होस्ट OS को यादृच्छिक रूप से लिखने के लिए आमंत्रित करता है (NTFS, Recycle Bin) एक एसडी के लिए बुरी खबर है। इसके अलावा, यह अनमाउंट करने से बहुत मदद मिलती है, कोई भी ओएस अनमाउंट स्टोरेज तक पहुंचने की कोशिश नहीं कर रहा है, इसलिए कोई भी फाइल सिस्टम तब तक करेगा जब तक कि एसडी में खुद को अनमाउट करने के लिए एक स्क्रिप्ट शामिल हो (खदान पर प्रत्येक एसडी पर मानक फाइलों में से एक)।

एक एसडी पढ़ना आज भी धीमा है, इसलिए मैं फाइल-बाय फाइल के बजाय मिरर डंप (डीडी) की तरह पूरी छवि को हथियाने की सिफारिश करूंगा। dd आपको यह भी बता देता है कि कुछ गड़बड़ है, इसलिए आपका फ़ाइल प्रबंधक kaboom नहीं जाएगा।

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

मैं ext4 या किसी भी जर्नलिंग से बचता हूँ SD पर SD क्योंकि मुझे परवाह नहीं है जब वे उनके लिए बुरा लिखते हैं, लेकिन यह निश्चित रूप से दर्द होता है जब एक दिन या तो बाद में मैं उन्हें नहीं पढ़ सकता हूं!


2
क्षमा करें, लेकिन यह वास्तव में प्रश्न का उत्तर नहीं देता है। यह हटाने योग्य मीडिया के उपयोग पर एक दिलचस्प निबंध है, लेकिन फाइल सिस्टम की पसंद के बारे में नहीं।
संशय

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

क्यों है Any file system which invites the host OS to write randomly to it (NTFS, Recycle Bin) is bad news for an SD.? इसमें रोटेटिंग डिस्क शामिल नहीं है, इसलिए जहां भी आप पढ़ते / लिखते हैं, उससे कोई फर्क नहीं पड़ता, मुझे लगता है। और btw, NTFS contiguously लिखता है - जो विखंडन की ओर जाता है। «फाइलों का रैंडम स्टोर», जैसे, EXTα के बारे में है।
हाय-एंजेल

0

वसा का उपयोग करने की सिफारिश की प्रतिक्रिया के रूप में (32?): मैंने कुछ प्रदर्शन परीक्षण किए हैं और पता चलता है कि किसी फ़ाइल को लिखने के लिए वसा 32 का बहुत ही अनुमानित समय है (2 जीबी 1 जीबी + ऑफसेट के 2 गुना, 3 जीबी की आवश्यकता होती है) 1GB + ऑफसेट)। Ext4 का प्रदर्शन ext3 की तुलना में थोड़ा बेहतर है। Ext3 और ext4 दोनों कभी-कभी तेज़ होते हैं लेकिन जर्नल फ़ाइलों को डिस्क पर लिखने के लिए कभी-कभी कुछ अतिरिक्त समय की आवश्यकता होती है (कोई रैखिक लेखन समय व्यवहार नहीं)। सभी परीक्षण fsync () के साथ किए गए थे यह सुनिश्चित करने के लिए कि फ़ाइल वास्तव में डिस्क पर लिखी गई है। मैंने सिंक के साथ कुछ परीक्षण किए ()। वे बहुत खराब लेखन प्रदर्शन के परिणामस्वरूप। इसलिए मैं वापस fsync () में चला गया। मैंने कुछ जाँच की कि क्या fsync () पर्याप्त है। इसलिए मैंने सिस्टम शटडाउन के बिना डिवाइस को संचालित किया या बिना कार्ड के एसडी कार्ड को हटा दिया। किसी भी स्थिति में लिखित फाइलें या निर्देशिका संरचना क्षतिग्रस्त नहीं हुई थी।

सादर, थॉमस


1
तुलना अनुचित है। आपने EXT3 / 4 की जर्नलिंग के साथ गैर-जर्नलिंग FAT की तुलना की। आप EXT2 बनाम वसा की तुलना करना चाहिए। और सिर्फ FYI करें, फ़ाइल सिस्टम जो निर्माता द्वारा पहले से आया था, में आमतौर पर सबसे इष्टतम ब्लॉक आकार / ऑफसेट होते हैं। यानी जब आपने फ़ाइल सिस्टम को रिफ़ॉर्म किया, तो संभावना है कि IO को मूल से अधिक समय लगेगा।
हाय-एंजेल

0

अगर आप नुकसान मुक्त एसडी कार्ड चाहते हैं तो मैं सुझाव देता हूं कि इसका उपयोग करें BTRFS:

BTRFS मूल रूप से 2007 में Oracle द्वारा बनाए गए EXT की तुलना में एक नई फ़ाइल प्रणाली है।

यह पारंपरिक फाइल सिस्टम में नई सुविधाएँ लाता है:

  • क्लोनिंग / स्नैपशॉट
  • मुश्किलें (भेजें / प्राप्त करें)
  • quotat
  • संघ
  • सेल्फ हीलिंग (30 से कम समय के लिए प्रतिबद्ध)

अतिरिक्त स्पष्टीकरण और तुलना के लिए इस पीडीएफ को देखें

नई तुलना के लिए इस साइट को देखें

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