मैं SSD से HDD को कैश करने के लिए फ़्लैशकैश / bcache कैसे स्थापित और उपयोग करूं?


52

मैं जानना चाहता हूं कि क्या कोई ऐसा व्यक्ति है जिसने एसएसडी कैशिंग के लिए फ्लैशकेच या bcache के साथ निर्मित अपने कर्नेल को स्थापित करने और चलाने की कोशिश की है ?

आपने इसे कैसे प्रबंधित किया?


अच्छा प्रश्न। मैं अपने कुछ उत्तरों ( 1 , 2 ) में फ्लैशचैच का सुझाव दे रहा हूं । यह डीएम-कैश के बगल में, नौकरी के लिए उपकरण लगता है । यह उन सभी लोगों के लिए भी प्रासंगिक है जो उबंटू / लिनक्स के लिए इंटेल स्मार्ट रिस्पांस के विकल्प की तलाश कर रहे हैं ।
gertvdijk

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

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

4
पहले से ही Flashcache के लिए यह कोशिश की? gerrit-tamboer.net/…
चमेली

4
dm-cache अब स्थिर 3.9 लिनक्स कर्नेल रिलीज में विलय कर दिया गया है। मुझे लगता है कि यह 26-वोट प्रश्न एक उत्तर के हकदार हैं। :)
gertvdijk

जवाबों:


10

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

ये कदम Github पर README-DKMS में उल्लिखित हैं ।

मॉड्यूल का निर्माण

  1. पहली चीज जो आप करते हैं वह है बिल्डिंग प्रीक्वायरमेंट्स:

    sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
    
  2. फिर स्रोत को रोके:

    git clone git://github.com/facebook/flashcache; cd flashcache
    
  3. मॉड्यूल बनाएं और स्थापित करें:

    make -f Makefile.dkms
    

Flashcache डिवाइस बनाना

(इस उदाहरण में मैं राइटबैक कैचिंग का उपयोग करता हूं - डिफ़ॉल्ट - लेकिन फ्लैशकैच रिट्रीटाउंड और राइटथ्रू भी कर सकता है)

गैर-रूट को कैशिंग करना (डिवाइस पर आरोहित नहीं होना)

sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX जहाँ fcache बनाया गया उपकरण है (/ dev / mapper / fcache), / dev / sdaX SSD विभाजन (या संपूर्ण डिस्क) और / dev / sdbX HDD विभाजन है।

अपने रूट डिवाइस को कैशिंग

यदि आप अपने रूट डिवाइस को कैशिंग कर रहे हैं तो कुछ और कदम हैं। इस सेक्शन के लिए आपको एक Ubuntu LiveCD / USB की आवश्यकता होगी।

  1. cd /path/to/flashcache/source

  2. make -f Makefile.dkms boot_conf

  3. / Dev / mapper / fcache से बूट करने के लिए /boot/grub/grub.cnf और / etc / fstab संपादित करें (मुझे विश्वास नहीं है कि यह कदम वास्तव में आवश्यक है, लेकिन यह कहता है)। अपने मूल रूट डिवाइस के UUID को अवश्य लिखें।

  4. LiveCD / LiveUSB के साथ रिबूट।

  5. अपने रूट डिवाइस को माउंट करें: mount /dev/sda4 /mnt(/ dev / sda4 मेरा लिनक्स रूट विभाजन है)

  6. cd /mnt/path/to/flashcache/source

  7. sudo apt-get install dkms build-essential linux-headers-$(uname -r)

  8. make; sudo make install लाइव वातावरण में पूरे DKMS सेटअप करने की आवश्यकता नहीं है

  9. रूट डिवाइस को अनमाउंट करें sudo umount /mnt

  10. sudo flashcache_create -p back fcache /dev/sdbX /dev/disk/by-uuid/[UUID] जहाँ fcache बनाया गया उपकरण है (यह उसी तरह होना चाहिए जैसा आपने / etc / fstab और /boot/grub/grub.cnf में डाला है, मेरे मामले में यह fcache था), / dev / sdbX SSD पार्टीशन (या संपूर्ण डिस्क) है ) और [यूयूआईडी] आपके रूट विभाजन का यूयूआईडी है।

  11. रिबूट!

रूट डिवाइस का उपयोग करते समय कैविट्स

एक मामूली झुंझलाहट जब फ्लैश डिवाइस को रूट डिवाइस के लिए उपयोग किया जाता है, तो यह है कि ग्रब-जांच रूट डिवाइस का पता लगाने में विफल रहती है और आपके बूट मेनू को गड़बड़ कर सकती है ताकि आपके पास दो उबंटू एंट्रेस हों। लेकिन, इससे कोई फर्क नहीं पड़ता कि आप सभी वास्तविकता में उपयोग करते हैं, क्योंकि make -f Makefile.dkms boot_confऊपर दिए गए चरण आपके initrd में कुछ स्क्रिप्ट स्थापित करते हैं जो फ़्लैशकैश डिवाइस का पता लगाएगा और उसका उपयोग करेगा।


2
मैं देख रहा हूं कि कम से कम रेयरिंग में फ्लैशस्कैच-डीएमएस और फ्लैशकैचे-बर्तनों के लिए पैकेज हैं। कैसे बदलेगा इंस्टालेशन?
ivant

क्या सचमे? मैंने गौर नहीं किया था। मैं रेयरिंग भी चला रहा हूं लेकिन इसे Git रिपॉजिटरी से इंस्टॉल किया गया है। मुझे पैकेज देखना होगा, लेकिन मैं सोच सकता हूं कि आप पहले युगल खंडों को छोड़ सकते हैं और फिर भी रूट डिवाइस को बूट करने की प्रक्रिया से गुजरेंगे।
चक आर

1
ubuntu 13.10 के फ्लैशकैचे-डीकेएमएस पैकेज में फ्लैशक्रैच मॉड्यूल और बायट्रिफ़्स इनट्रामरफ्स शामिल नहीं हैं, इसलिए यदि आप अपनी जड़ को फ्लैश करते हैं तो आप इसे बूट करने में असमर्थ होंगे। मैंने एक बग बनाया है: Bugs.launchpad.net/ubuntu/+source/flashcache/+bug/1290148 मैंने ऊपर बताए अनुसार स्रोत से फ्लैशकेस का निर्माण किया है और मैं निम्नलिखित श्रृंखला को बूट करने में सक्षम था: sda7 -> फ्लैशकेस -> डीएम- क्रिप्ट -> lvm -> ext4। बस Flashcache dev को / etc / crypttab और update-initramfs -u में जोड़ें
मार्टिन विसेनी

क्या आप उन बदलावों के साथ एक टिप्पणी जोड़ सकते हैं जिन्हें आपको ग्रब फ़ाइल में करना था।
कप्पड़

मैं अब grub.cfg को संशोधित नहीं करता, यह आवश्यक नहीं लगता है। हालांकि, अगर आप इस तरह एक परिवर्तन कार्य करें: linux /boot/vmlinuz-3.19.0-51-lowlatency root=UUID=0a540b91-5990-4df0-bc99-5d6e2cd3fed6 ro recovery nomodesetकरने के लिए linux /boot/vmlinuz-3.19.0-51-lowlatency root=/dev/mapper/fcache ro recovery nomodeset(यानी, जड़ = पैरामीटर को बदलने)
चक आर

12

मौजूदा डिवाइस पर bcache को सक्षम करने के लिए एक रूपांतरण उपकरण है (प्रकटीकरण: मैंने इसे लिखा था)। यह नए इंस्टॉलेशन के लिए जाने का तरीका भी है, क्योंकि वर्तमान डिस्ट्रो इंस्टॉलर को पता नहीं है कि bcache डिवाइस कैसे बनाएं (किस स्थिति में: HDD पर इंस्टॉल करके शुरू करें)।

निर्देशों के लिए README में अपने रूट फाइल सिस्टम को bcache में परिवर्तित करना देखें blocks

bcache को Linux 3.10 या नए की आवश्यकता होती है, जो saucy में है, और मैन्युअल रूप से http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M=O=D से स्थापित किया जा सकता है (नवीनतम टैग रिलीज़ के लिए देखें) , वर्तमान में v3.11.5-saucy, और आपके आर्किटेक्चर से मेल खाने वाले डेब्यू) को स्थापित करें।

bcache-toolsऔर मेरे भंडारण ppablocks से स्थापित किया जा सकता है ।


1
यह उपकरण उबंटू के वर्तमान (15.04) संस्करण के लिए टूट गया है; देख github.com/g2p/maintboot/issues/1 और github.com/g2p/blocks/issues/13
जीन Jordaan

वास्तव में उपकरण ही नहीं टूटा है (कल 350 जीबी हार्ड ड्राइव पर परीक्षण किया गया)। हालांकि वर्तमान संस्करण सिस्टम डिस्क (परिवर्तित करने के लिए नहीं किया जा सकता /, /home, /usr/जबकि सिस्टम चल रहा है (के रूप में maintboot टूट गया है), ...)। एक विकल्प के रूप में आप एक लाइव यूएसबी स्टिक का उपयोग कर सकते हैं, blocksवहां स्थापित करें और अपने डिस्क को परिवर्तित करने के लिए उपयोग करें। हालांकि सावधान रहें कि यह उपकरण केवल प्राथमिक MBR और GPT विभाजन तालिकाओं पर काम करता है और प्रत्येक विभाजन से पहले 1MiB अतिरिक्त स्थान की आवश्यकता होती है।
ntninja

5

पूर्व चेतावनी: bcache का उपयोग आपके मौजूदा Ubuntu इंस्टालेशन के लिए नहीं किया जा सकता है। यदि आपको अपने ऑपरेटिंग सिस्टम के लिए SSD कैशिंग की आवश्यकता है तो आपको उबंटू इंस्टॉलर के भविष्य या विशेष संस्करण की प्रतीक्षा करनी चाहिए जो आपके SSD कैश को सेट कर सके। ओली के इस उत्तर को यहाँ देखें: क्या bcache को एक नई स्थापना की आवश्यकता है?

सभी के लिए जो गैर-ओएस डेटा के लिए bcache ड्राइव चाहते हैं:

13.04 या पुराने कर्नेल मेनलाइन PPA का उपयोग करके यदि आपकी कर्नेल अपग्रेड करने वाली पहली चीज़ है। इसका उपयोग करने के निर्देश यहां देखे जा सकते हैं:

https://wiki.ubuntu.com/Kernel/MainlineBuilds

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

Bcache-tools स्थापित करें, फिलहाल आपको git रिपॉजिटरी से इंस्टॉल करना होगा:

git clone http://evilpiepirate.org/git/bcache-tools.git

यदि आप bcache-toolsडेबियन के लिए पैकेज का प्रबंधन करते हैं , तो हमें बताएं और यह प्रश्न आपके लिए अपडेट किया जाएगा। ( bcache-tools'बिल्ड डिपेंडेंसी' हैं uuid-devऔर libblkid-devउन्हें स्थापित करने के लिए स्थापित किया जाना चाहिए bcache-tools।)

एक बार आपके पास सभी उपकरण होने के बाद, आप यहां गाइड का अनुसरण करने के लिए तैयार हैं:

http://atlas.evilpiepirate.org/git/linux-bcache.git/tree/Documentation/bcache.txt

यह गाइड दिखाता है कि ड्राइव (SSD और हार्ड ड्राइव) को कैसे प्रारूपित किया जाए और फिर bcache का उपयोग करके एक नया डिवाइस ब्लॉक बनाने के लिए उन्हें एक साथ संलग्न करें। एक टिप्पणी पोस्ट करें यदि आपको निर्देश भ्रामक लगते हैं और मैं इस उत्तर को सरलीकरण के साथ अपडेट करूंगा।


क्या स्टार्टअप डिस्क को कर्नेल 3.9 बनाना संभव है और फिर bcache ड्राइव बनाएं और इस ड्राइव के शीर्ष पर ubuntu स्थापित करें?
कपाट

kapad - यह संभव होना चाहिए, लेकिन आपको यह सुनिश्चित करना होगा कि ubuntu इंस्टॉल में बूट समय पर सही ड्राइवर उपलब्ध थे और आपको bcache के बाहर बूट बनाना पड़ सकता है, इसलिए ग्रब इसे ढूंढ सकता है।
मार्टिन ओवेन्स -डोक्टर्मो-

2

मुझे लगा कि मैं यहां आऊंगा और उस पर टिप्पणी करूंगा कि जब मैंने एक नया कर्नेल लगाया था। मैं अपने / घर / फ़ोल्डर विभाजन के लिए फ्लैशचैच का उपयोग कर रहा था। मैंने एक नया कर्नेल स्थापित किया, उसमें बूट किया और यह बूटअप के दौरान बंद हो गया और कहा कि यह / dev / mapper / home_cached नहीं मिल सकता है, आपके पास 3 विकल्प हैं जब आप इस संदेश को प्राप्त करते हैं और मैं रूट के रूप में लॉग इन करने का विकल्प चुनता हूं इसे ठीक करने का प्रयास। मैंने पहली बार फ्लैशकेच मॉड्यूल को लोड करने का प्रयास किया और यह कहा कि यह उसे नहीं मिल सकता है। इसलिए मुझे लगा कि मुझे इस नए कर्नेल के लिए संकलित करना और स्थापित करना होगा जिसे मैंने अभी स्थापित किया है। मैं अभी भी / Flashcache / फ़ोल्डर / रूट / भीतर स्थित था / तो मैं इसे में cd'd और भाग गया

make -f Makefile.dkms boot_conf

फिर मैं भागा

make install

फिर मैंने फ्लैशकेच मॉड्यूल को लोड किया

modprobe flashcache

तब मुझे बस अपने मौजूदा फ्लैशचेक डिवाइस को लोड करना था जो कि था

flashcache_load /dev/sdb1

तो बस के साथ मेरे घर विभाजन माउंट

mount /home

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


im जिज्ञासु अगर यह अभी भी काम करता है, तो मैंने स्विच करना समाप्त कर दिया और किसी भी लंबे समय तक फ्लैशकाक का उपयोग नहीं किया, मैंने बस आर्क को 64GB SSD पर स्थापित किया है (लिनक्स कर्नेल सोचता है कि यह केवल 32GB है) हालांकि आंतरिक फर्मवेयर के कारण। मैं इसे कुछ स्टीम गेम के लिए कैशिंग ड्राइव के रूप में फायदेमंद होते हुए देख सकता था।
उब टेक द गुरु
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.