शिंगल डिस्क पर सबसे तेज लिनक्स फाइलसिस्टम


13

शिंगल ड्राइव में काफी रुचि है। ये डेटा ट्रैक को एक साथ इतने करीब रखते हैं कि आप अगले ट्रैक को क्लोब किए बिना एक ट्रैक पर नहीं लिख सकते। यह 20% या तो क्षमता में वृद्धि कर सकता है, लेकिन परिणाम में वृद्धि की समस्याओं को लिख सकता है। Shingled ड्राइव के लिए अनुकूलित फ़ाइल सिस्टम पर काम चल रहा है, उदाहरण के लिए देखें: https://lwn.net/Articles/597782/

कुछ शिंगल डिस्क जैसे कि सीगेट 8 टीबी आर्काइव में रैंडम राइट्स के लिए कैशे एरिया होता है, जिससे जेनेरिक फाइल सिस्टम पर अच्छा प्रदर्शन होता है। 200 एमबी / सेकेंड राउंड तक डिस्क कुछ सामान्य वर्कलोड पर काफी तेज हो सकती है। हालांकि, यह उम्मीद की जानी चाहिए कि यदि रैंडम कैश ओवरफ्लो लिखते हैं, तो प्रदर्शन को नुकसान हो सकता है। संभवतः, कुछ फाइलसिस्टम सामान्य रूप से रैंडम राइट्स से बचने में बेहतर होते हैं, या रैंडम राइट्स के पैटर्न ऐसे ड्राइव्स में पाए गए राइट कैश को ओवरफ्लो करने की संभावना रखते हैं।

क्या linux कर्नेल में मेनस्ट्रीम फाइलसिस्टम, ext4 की तुलना में शिंगल डिस्क के प्रदर्शन के दंड से बचने में बेहतर है ?


बाजार में अभी 2 प्रकार के शिंगल डिस्क हैं। जिन्हें HGST 10TB डिस्क की तरह एक समर्थित OS की आवश्यकता होती है, जिन्हें सीगेट 8TB आर्काइव जैसे विशिष्ट OS समर्थन की आवश्यकता नहीं होती है। आप किसका जिक्र कर रहे हैं?
RJ-

यह देखते हुए कि मैं एफएस को मुख्यधारा के लोगों तक सीमित कर रहा हूं, यह शायद सीगेट शैली होना होगा?
gmatht

वर्तमान ड्राइव में लागू SMR का परिणाम "SSDs की तरह प्रवर्धन समस्याएं लिखना" नहीं है। वे केवल SSDs की तरह बहुत कम तरीकों से काम करते हैं ।
qasdfdsaq

@qasdfdsaq मेरा मतलब "एसएसडी के साथ" था।
gmatht

जवाबों:


4

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

Nilfs2 फाइलसिस्टम ने SMR डिस्क पर काफी अच्छा प्रदर्शन दिया। हालाँकि, ऐसा इसलिए था क्योंकि मैंने पूरे 8TB विभाजन को आवंटित कर दिया था, और बेंचमार्क में केवल ~ 0.5TB लिखा था, इसलिए nilfs क्लीनर को चलाना नहीं था। जब मैंने विभाजन को 200GB तक सीमित कर दिया तो nilfs बेंचमार्क भी सफलतापूर्वक पूरा नहीं हुआ। Nilfs2 एक अच्छा विकल्प प्रदर्शन-वार हो सकता है यदि आप वास्तव में "आर्काइव" डिस्क को एक आर्काइव डिस्क के रूप में उपयोग करते हैं, जहां आप डिस्क पर लिखे गए सभी डेटा और स्नैपशॉट को हमेशा के लिए रखते हैं, तो तब नीलोफ क्लीनर को चलाना नहीं पड़ता है।


मैं समझता हूं कि ST8000AS0002-1NA17Zपरीक्षण के लिए मैंने जो 8TB सीगेट ड्राइव का उपयोग किया है, उसमें ~ 20GB कैश क्षेत्र है। मैंने डिफॉल्ट फाइलबेंच फाइलसेवर सेटिंग्स को बदल दिया ताकि बेंचमार्क सेट ~ 125GB हो, जो अनशिंक कैश एरिया से बड़ा हो:

set $meanfilesize=1310720
set $nfiles=100000
run 36000

अब वास्तविक आंकड़ों के लिए। ऑप्स की संख्या "समग्र" फाइलरवर के प्रदर्शन को मापती है जबकि ms / op यादृच्छिक परिशिष्ट की विलंबता को मापता है, और यादृच्छिक लेखन के प्रदर्शन के लिए किसी न किसी गाइड के रूप में इस्तेमाल किया जा सकता है।

$ grep rand *0.out | sed s/.0.out:/\ / |sed 's/ - /-/g' |  column -t
SMR8TB.nilfs   appendfilerand1   292176ops 8ops/s   0.1mb/s   1575.7ms/op    95884us/op-cpu [0ms - 7169ms]
SMR.btrfs      appendfilerand1  214418ops  6ops/s   0.0mb/s  1780.7ms/op  47361us/op-cpu  [0ms-20242ms]
SMR.ext4       appendfilerand1  172668ops  5ops/s   0.0mb/s  1328.6ms/op  25836us/op-cpu  [0ms-31373ms]
SMR.xfs        appendfilerand1  149254ops  4ops/s   0.0mb/s  669.9ms/op   19367us/op-cpu  [0ms-19994ms]
Toshiba.btrfs  appendfilerand1  634755ops  18ops/s  0.1mb/s  652.5ms/op   62758us/op-cpu  [0ms-5219ms]
Toshiba.ext4   appendfilerand1  466044ops  13ops/s  0.1mb/s  270.6ms/op   23689us/op-cpu  [0ms-4239ms]
Toshiba.xfs    appendfilerand1  368670ops  10ops/s  0.1mb/s  195.6ms/op   19084us/op-cpu  [0ms-2994ms]

चूंकि सीगेट 5980 आरपीएम है, इसलिए कोई व्यक्ति तोशिबा से 20% तेजी से उम्मीद कर सकता है। ये बेंचमार्क इसे लगभग 3 गुना (200%) तेजी से दिखाते हैं, इसलिए ये बेंचमार्क शिंगल परफॉर्मेंस पेनल्टी मार रहे हैं। हम देखते हैं कि शिंगल्ड (SMR) डिस्क अभी भी प्रदर्शन को किसी unshingled (PMR) डिस्क पर मिलान नहीं कर सकता है। सबसे अच्छा प्रदर्शन एक 8TB विभाजन के साथ nilfs2 के साथ था (इसलिए क्लीनर को चलाने की आवश्यकता नहीं थी), लेकिन फिर भी यह ext4 के साथ तोशिबा की तुलना में काफी धीमा था।

बेंचमार्क को अधिक स्पष्ट बनाने के लिए, प्रत्येक डिस्क पर ext4 के प्रदर्शन के सापेक्ष उन्हें सामान्य करने में मदद मिल सकती है:

                ops     randappend
SMR.btrfs:      1.24    0.74
SMR.ext4:       1       1
SMR.xfs:        0.86    1.98
Toshiba.btrfs:  1.36    0.41
Toshiba.ext4:   1       1
Toshiba.xfs:    0.79    1.38

हम देखते हैं कि SMR डिस्क पर btrfs को कुल ऑप्स पर सबसे अधिक फायदा होता है, जो ext4 पर होता है, लेकिन रैंडम अपेंडिक्स पर जुर्माना एक अनुपात के रूप में नाटकीय नहीं है। यह SMR डिस्क पर btrfs पर जाने के लिए एक ले सकता है। दूसरी ओर, यदि आपको कम विलंबता यादृच्छिक अपेंडिक्स की आवश्यकता है, तो यह मानदंड बताता है कि आप एक्सएफएस चाहते हैं, खासकर एसएमआर पर। हम देखते हैं कि एसएमआर / पीएमआर फाइल सिस्टम की आपकी पसंद को प्रभावित कर सकता है, लेकिन उस कार्यभार को देखते हुए जो आपके लिए अधिक महत्वपूर्ण लगता है।

मैंने एक अटारी आधारित बेंचमार्क भी चलाया। अटारी रन की अवधि (8 टीबी एसएमआर पूर्ण डिस्क विभाजन पर) थीं:

ext4:  1 days 1 hours 19 minutes 54.69 seconds
btrfs: 1 days 40 minutes 8.93 seconds
nilfs: 22 hours 12 minutes 26.89 seconds

प्रत्येक मामले में अटारी रिपॉजिटरी में निम्नलिखित आँकड़े थे:

                       Original size      Compressed size    Deduplicated size
This archive:                1.00 TB            639.69 GB            515.84 GB
All archives:              901.92 GB            639.69 GB            515.84 GB

अटारी के लिए एक ही टीबी डिस्क की दूसरी प्रति जोड़ने से इन तीन फाइल सिस्टमों में से प्रत्येक पर 4.5 घंटे लगते हैं। बेंचमार्क और smartctlजानकारी का एक कच्चा डंप इस प्रकार है: http://pastebin.com/tYK2Uj76 https://github.com/gmatht/joshell/tree/master/benchmark/SMR


क्या आप सुनिश्चित हैं कि ये अंतर SMR बनाम PMR के लिए विशिष्ट हैं?
RJ-

ज़रुरी नहीं। मैं और अधिक बेंचमार्क जोड़ूंगा क्योंकि मैं उन्हें इस तरह के सवालों का जवाब देने के लिए करता हूं, लेकिन अधिक बेंचमार्क अनुभव वाला कोई व्यक्ति मुझसे बेहतर काम कर सकता है। उम्मीद है कि यह एक मोटा विचार देने के लिए पर्याप्त है कि क्या यह SMR डिस्क पर ext4 से स्विच करने पर विचार करने लायक हो सकता है।
gmatht

3
शिंगल डिस्क लेखन पर कॉपी का उपयोग नहीं करते हैं। वे RAID-5 सरणियों के लिए आंशिक राइट्स की तरह ही रीड-मॉडिफाई-राइट का उपयोग करते हैं। रैंडम राइट्स एसएमआर डिस्क को धीमा नहीं करते हैं , वास्तव में यह उन्हें गति देता है। 6000RPM SMR ड्राइव 15x RPM गैर-SMR ड्राइव की तुलना में रैंडम राइट्स पर 10x तेज होती है जब तक यह कैश में फिट बैठता है, जो वास्तव में 30GB है।
qasdfdsaq

@qasdfdsaq धन्यवाद, मैंने CoW के संदर्भ को हटा दिया। मैं समझता हूं कि पीएमआर की तुलना में बेतरतीब ढंग से लिखने के लिए प्लैटर के स्तर पर ड्राइव बहुत धीमी है, लेकिन यह कि कैश के कारण एसएमआर तेजी से लिख सकता है; पीएमआर ड्राइव + कैश संभवतः फिर से तेज होगा। क्या आपके पास 30GB आंकड़ा के लिए एक संदर्भ है? सीगेट तकनीकी विशिष्टताओं पर आधिकारिक संख्या नहीं लगती है। भी, ड्राइव के लिए अनुकूलन RAID 5 सरणियों के अनुकूलन के लिए एक समान समस्या हो सकती है?
gmatht

1
मैं इस विषय पर कुछ यादृच्छिक खोज कर रहा था और f2fs पर एक ब्लॉग पोस्ट पर आया: blog.schmorp.de/2015-10-08-smr-archive-drives-fast-now.html
Lester Cheung

1

यदि आप rsync से एक SMR ड्राइव, कि फाइल सिस्टम लगाया गया है यह सुनिश्चित कर लें read-onlyया के साथ noatimeविकल्प।

अन्यथा SMR ड्राइव को प्रत्येक फ़ाइल rsync रीड के लिए टाइमस्टैम्प लिखने की आवश्यकता होगी, जिसके परिणामस्वरूप एक महत्वपूर्ण प्रदर्शन में गिरावट (लगभग 80 mb / s से 3-5 mb / s नीचे) और सिर पहनने / क्लिक करने पर शोर होगा।

यदि आपके पास पहले से ही खराब प्रदर्शन के साथ एक rsync नौकरी चल रही है, तो इसे रोकने की कोई आवश्यकता नहीं है, आप स्रोत फाइल सिस्टम को कर सकते हैं

sudo mount -o remount,ro  /path/to/source/fs

प्रभाव तुरंत नहीं देखा जाएगा, धैर्य रखें और 10 से 20 मिनट तक प्रतीक्षा करें, जब तक कि ड्राइव अपने बफ़र्स में अभी भी सभी डेटा को लिखने के लिए समाप्त न हो जाए। इस सलाह की कोशिश की जाती है और ठीक परीक्षण किया जाता है।


यह तब भी लागू हो सकता है जब एक SMR ड्राइव के लिएrsync आईएनजी , यानी फाइल सिस्टम डिस्क के पूरी तरह से लिखे जाने के बाद टाइमस्टैम्प को अपडेट करने की कोशिश करता है। यह जिटर्स अनुक्रमिक कार्यभार और डेटा के विशाल बैंड को लगातार फिर से लिखा जाता है, ड्राइव पहनने में योगदान देता है। निम्नलिखित मदद कर सकते हैं:

sudo mount -t fs_type -o rw,noatime device /path/to/dest/fs

Rsync चलाने से पहले यह करना होगा; अन्य कारक इस विकल्प को निरर्थक प्रस्तुत कर सकते हैं, अर्थात अनफ़िटेड FAT / MFT अद्यतन, समानांतरित लिखते हैं कि क्या फाइल सिस्टम मुख्य रूप से SSDs के लिए अनुकूलित है, आदि।


dd bs=32Mएसएमआर लक्ष्य पर फाइल सिस्टम का उपयोग करने और फिर आकार देने की कोशिश करें , यदि आप किसी भी तरह से पूर्ण फाइलसिस्टम का बैकअप लेना चाहते हैं (इस मामले में प्रत्येक फाइल को ट्रांसपोर्ट करने के लिए rsync को माउंट और रन करने की आवश्यकता नहीं है)।


उपयोग में वास्तविक हार्डवेयर एक सीगेट ड्राइव प्रबंधित SMR 8tb उपभोक्ता ड्राइव था। आपका माइलेज अन्य हार्डवेयर के साथ भिन्न हो सकता है।


2
यह एक अच्छा जवाब है, लेकिन इस सवाल का नहीं क्योंकि इसका मूल पोस्टर के साथ क्या संबंध है, इससे कोई लेना-देना नहीं है। मैं आपको इस उत्तर के लिए स्व-उत्तरित प्रश्न बनाने के लिए प्रोत्साहित करूँगा। जैसे कि "मैं चुस्त ड्राइव से Rsync करने का प्रयास कर रहा हूं और प्रदर्शन खराब है। मैं इसे सुधारने के लिए क्या कर सकता हूं? "
जेकगोल्ड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.