मैं जानना चाहता हूं कि क्या कोई ऐसा व्यक्ति है जिसने एसएसडी कैशिंग के लिए फ्लैशकेच या bcache के साथ निर्मित अपने कर्नेल को स्थापित करने और चलाने की कोशिश की है ?
आपने इसे कैसे प्रबंधित किया?
मैं जानना चाहता हूं कि क्या कोई ऐसा व्यक्ति है जिसने एसएसडी कैशिंग के लिए फ्लैशकेच या bcache के साथ निर्मित अपने कर्नेल को स्थापित करने और चलाने की कोशिश की है ?
आपने इसे कैसे प्रबंधित किया?
जवाबों:
खैर, हमें एक bcache उत्तर मिला, लेकिन कोई भी फ़्लैश उत्तर नहीं मिला। मैंने फ्लैशचैच को चुना क्योंकि मेरे पास पहले से ही एक मौजूदा इंस्टॉलेशन था, इसलिए bcache प्रश्न से बाहर था। मेरे लिए यह स्थापित करना आसान लग रहा था। मैंने DKMS विधि को चुना, इसलिए मैं हर बार जब मैं कर्नेल अपग्रेड प्राप्त करता हूं, तो मैं मॉड्यूल / टूल को फिर से तैयार नहीं करूंगा।
ये कदम Github पर README-DKMS में उल्लिखित हैं ।
मॉड्यूल का निर्माण
पहली चीज जो आप करते हैं वह है बिल्डिंग प्रीक्वायरमेंट्स:
sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
फिर स्रोत को रोके:
git clone git://github.com/facebook/flashcache; cd flashcache
मॉड्यूल बनाएं और स्थापित करें:
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 की आवश्यकता होगी।
cd /path/to/flashcache/source
make -f Makefile.dkms boot_conf
/ Dev / mapper / fcache से बूट करने के लिए /boot/grub/grub.cnf और / etc / fstab संपादित करें (मुझे विश्वास नहीं है कि यह कदम वास्तव में आवश्यक है, लेकिन यह कहता है)। अपने मूल रूट डिवाइस के UUID को अवश्य लिखें।
LiveCD / LiveUSB के साथ रिबूट।
अपने रूट डिवाइस को माउंट करें: mount /dev/sda4 /mnt
(/ dev / sda4 मेरा लिनक्स रूट विभाजन है)
cd /mnt/path/to/flashcache/source
sudo apt-get install dkms build-essential linux-headers-$(uname -r)
make; sudo make install
लाइव वातावरण में पूरे DKMS सेटअप करने की आवश्यकता नहीं है
रूट डिवाइस को अनमाउंट करें sudo umount /mnt
sudo flashcache_create -p back fcache /dev/sdbX /dev/disk/by-uuid/[UUID]
जहाँ fcache बनाया गया उपकरण है (यह उसी तरह होना चाहिए जैसा आपने / etc / fstab और /boot/grub/grub.cnf में डाला है, मेरे मामले में यह fcache था), / dev / sdbX SSD पार्टीशन (या संपूर्ण डिस्क) है ) और [यूयूआईडी] आपके रूट विभाजन का यूयूआईडी है।
रिबूट!
रूट डिवाइस का उपयोग करते समय कैविट्स
एक मामूली झुंझलाहट जब फ्लैश डिवाइस को रूट डिवाइस के लिए उपयोग किया जाता है, तो यह है कि ग्रब-जांच रूट डिवाइस का पता लगाने में विफल रहती है और आपके बूट मेनू को गड़बड़ कर सकती है ताकि आपके पास दो उबंटू एंट्रेस हों। लेकिन, इससे कोई फर्क नहीं पड़ता कि आप सभी वास्तविकता में उपयोग करते हैं, क्योंकि make -f Makefile.dkms boot_conf
ऊपर दिए गए चरण आपके initrd में कुछ स्क्रिप्ट स्थापित करते हैं जो फ़्लैशकैश डिवाइस का पता लगाएगा और उसका उपयोग करेगा।
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
(यानी, जड़ = पैरामीटर को बदलने)
मौजूदा डिवाइस पर 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
से स्थापित किया जा सकता है ।
/
, /home
, /usr/
जबकि सिस्टम चल रहा है (के रूप में maintboot टूट गया है), ...)। एक विकल्प के रूप में आप एक लाइव यूएसबी स्टिक का उपयोग कर सकते हैं, blocks
वहां स्थापित करें और अपने डिस्क को परिवर्तित करने के लिए उपयोग करें। हालांकि सावधान रहें कि यह उपकरण केवल प्राथमिक MBR और GPT विभाजन तालिकाओं पर काम करता है और प्रत्येक विभाजन से पहले 1MiB अतिरिक्त स्थान की आवश्यकता होती है।
पूर्व चेतावनी: 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 का उपयोग करके एक नया डिवाइस ब्लॉक बनाने के लिए उन्हें एक साथ संलग्न करें। एक टिप्पणी पोस्ट करें यदि आपको निर्देश भ्रामक लगते हैं और मैं इस उत्तर को सरलीकरण के साथ अपडेट करूंगा।
मुझे लगा कि मैं यहां आऊंगा और उस पर टिप्पणी करूंगा कि जब मैंने एक नया कर्नेल लगाया था। मैं अपने / घर / फ़ोल्डर विभाजन के लिए फ्लैशचैच का उपयोग कर रहा था। मैंने एक नया कर्नेल स्थापित किया, उसमें बूट किया और यह बूटअप के दौरान बंद हो गया और कहा कि यह / dev / mapper / home_cached नहीं मिल सकता है, आपके पास 3 विकल्प हैं जब आप इस संदेश को प्राप्त करते हैं और मैं रूट के रूप में लॉग इन करने का विकल्प चुनता हूं इसे ठीक करने का प्रयास। मैंने पहली बार फ्लैशकेच मॉड्यूल को लोड करने का प्रयास किया और यह कहा कि यह उसे नहीं मिल सकता है। इसलिए मुझे लगा कि मुझे इस नए कर्नेल के लिए संकलित करना और स्थापित करना होगा जिसे मैंने अभी स्थापित किया है। मैं अभी भी / Flashcache / फ़ोल्डर / रूट / भीतर स्थित था / तो मैं इसे में cd'd और भाग गया
make -f Makefile.dkms boot_conf
फिर मैं भागा
make install
फिर मैंने फ्लैशकेच मॉड्यूल को लोड किया
modprobe flashcache
तब मुझे बस अपने मौजूदा फ्लैशचेक डिवाइस को लोड करना था जो कि था
flashcache_load /dev/sdb1
तो बस के साथ मेरे घर विभाजन माउंट
mount /home
तब कमांड लाइन पर बाहर निकलने के साथ रूट के रूप में लॉग आउट किया जा रहा है और इसे सामान्य रूप से बूट करना जारी रखना चाहिए। सब कुछ कर दिया!