ฉันต้องการทราบว่ามีใครที่ลองติดตั้งและใช้งานเคอร์เนลที่สร้างขึ้นด้วยflashcacheหรือbcacheสำหรับการแคช SSD หรือไม่
คุณจัดการได้อย่างไร
ฉันต้องการทราบว่ามีใครที่ลองติดตั้งและใช้งานเคอร์เนลที่สร้างขึ้นด้วยflashcacheหรือbcacheสำหรับการแคช SSD หรือไม่
คุณจัดการได้อย่างไร
คำตอบ:
เราได้คำตอบ bcache แต่ไม่มีคำตอบ flashcache ฉันเลือก flashcache เพราะฉันมีการติดตั้งอยู่แล้วดังนั้น bcache จึงไม่เป็นเช่นนั้น สำหรับฉันมันง่ายกว่าที่จะตั้งค่าเช่นกัน ฉันเลือกวิธี DKMS ดังนั้นฉันจะไม่ติดสร้างโมดูล / เครื่องมือใหม่ทุกครั้งที่อัพเกรดเคอร์เนล
ขั้นตอนเหล่านี้ได้อธิบายไว้ในREADME-DKMSบน Github
สร้างโมดูล
สิ่งแรกที่คุณทำคือติดตั้งสิ่งที่จำเป็นต้องมีของอาคาร:
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
(ในตัวอย่างนี้ฉันใช้แคชการเขียนกลับ - ค่าเริ่มต้น - แต่ flashcache สามารถเขียนทับและเขียนทับได้เช่นกัน)
การแคชอุปกรณ์ที่ไม่ใช่รูท (ไม่ได้เมาท์ที่ /)
sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX
โดยที่ fcache เป็นอุปกรณ์ที่สร้างขึ้น (/ dev / mapper / fcache), / dev / sdaX เป็น SSD partion (หรือทั้งดิสก์) และ / dev / sdbX เป็นพาร์ติชั่น HDD
กำลังแคชอุปกรณ์รูทของคุณ
มีขั้นตอนอีกไม่กี่ขั้นตอนหากคุณแคชอุปกรณ์รูทของคุณ คุณจะต้องใช้ Ubuntu LiveCD / USB สำหรับส่วนนี้
cd /path/to/flashcache/source
make -f Makefile.dkms boot_conf
แก้ไข /boot/grub/grub.cnf และ / etc / fstab เพื่อบูตจาก / dev / mapper / fcache (ฉันไม่เชื่อว่าขั้นตอนนี้จำเป็นจริงๆ แต่บอกว่า) ต้องแน่ใจว่าจด UUID ของอุปกรณ์รูทดั้งเดิมของคุณ
รีบูทด้วย LiveCD / LiveUSB
เมานต์อุปกรณ์รูทของคุณ: mount /dev/sda4 /mnt
(/ dev / sda4 เป็นพาร์ทิชันรูท Linux ของฉัน)
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 (หรือดิสก์ทั้งหมด ) และ [UUID] เป็น UUID ของพาร์ติชันรูทของคุณ
Reboot!
คำเตือนเมื่อใช้อุปกรณ์รูท
สิ่งเล็กน้อยที่น่ารำคาญเมื่อใช้ flashcache สำหรับอุปกรณ์รูทคือตัวตรวจจับด้วงไม่สามารถตรวจจับอุปกรณ์รูทและสามารถทำเมนูการบู๊ตของคุณเพื่อที่ว่าคุณจะได้ Ubuntu สองตัว แต่มันก็ไม่สำคัญว่าคุณจะใช้อะไรในความเป็นจริงตั้งแต่make -f Makefile.dkms boot_conf
ขั้นตอนข้างต้นจะติดตั้งสคริปต์บางตัวใน initrd ของคุณซึ่งจะตรวจจับและใช้อุปกรณ์ flashcache
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 บนอุปกรณ์ที่มีอยู่ (เปิดเผย: ฉันเขียนมัน) นอกจากนี้ยังเป็นวิธีในการรับการติดตั้งใหม่เนื่องจากผู้ติดตั้ง distro ปัจจุบันไม่ทราบวิธีการสร้างอุปกรณ์ bcache (ในกรณีนี้: เริ่มต้นด้วยการติดตั้งลงบน HDD)
ดูการแปลงระบบไฟล์รูทของคุณเป็น bcacheในblocks
README สำหรับคำแนะนำ
bcache ต้องใช้ลินุกซ์ 3.10 หรือใหม่กว่าซึ่งอยู่ในทะลึ่งและสามารถติดตั้งได้ด้วยตนเองจาก
http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D (มองหาการเปิดตัวที่ติดแท็กใหม่ล่าสุด ปัจจุบันv3.11.5-saucy
และติดตั้ง debs ที่ตรงกับสถาปัตยกรรมของคุณ)
bcache-tools
และblocks
สามารถติดตั้งจากppa การจัดเก็บข้อมูลของฉัน
/
, /home
, /usr/
, ... ) ในขณะที่ระบบกำลังทำงาน (ตาม maintboot เสีย) คุณสามารถใช้ USB Stick แบบสดแทนติดตั้งที่blocks
นั่นและใช้สำหรับแปลงดิสก์ของคุณ อย่างไรก็ตามจงระวังว่าเครื่องมือนี้ใช้ได้กับตารางพาร์ติชัน MBR และ GPT หลักเท่านั้นและต้องใช้พื้นที่เพิ่มเติม 1MiB ก่อนแต่ละพาร์ติชัน
คำเตือนล่วงหน้า: bcache ไม่สามารถใช้สำหรับการติดตั้ง Ubuntu ที่มีอยู่ของคุณ หากคุณต้องการแคช SSD สำหรับระบบปฏิบัติการของคุณคุณควรรอรุ่นติดตั้ง Ubuntu ในอนาคตหรือรุ่นพิเศษซึ่งสามารถตั้งค่าแคช SSD ของคุณได้ ดูคำตอบโดย Oli ที่นี่: 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 โพสต์ความคิดเห็นหากคุณพบว่าคำแนะนำสับสนและฉันจะอัปเดตคำตอบนี้ด้วยการทำให้เข้าใจง่าย
ฉันคิดว่าฉันจะมาที่นี่และแสดงความคิดเห็นกับสิ่งที่เกิดขึ้นกับฉันเมื่อฉันติดตั้งเคอร์เนลใหม่ ฉันใช้ flashcache สำหรับพาร์ติชัน / home / folder ของฉันเท่านั้น ฉันติดตั้งเคอร์เนลใหม่บูตเข้าไปและหยุดในระหว่างการบูตและบอกว่าไม่พบ / dev / mapper / home_cached มี 3 ตัวเลือกที่คุณมีเมื่อคุณได้รับข้อความนี้และฉันเลือกตัวเลือกเพื่อเข้าสู่ระบบในฐานะ root และ พยายามแก้ไข ฉันแรกพยายามโหลดโมดูล flashcache และมันบอกว่าหาไม่พบ ดังนั้นฉันคิดว่าฉันจะต้องรวบรวมและติดตั้งสำหรับเคอร์เนลใหม่นี้ฉันเพิ่งติดตั้ง ฉันยังคงมี / flashcache / โฟลเดอร์ที่ตั้งอยู่ภายใน / root / ดังนั้นฉัน cd'd เข้าไปและวิ่ง
make -f Makefile.dkms boot_conf
จากนั้นฉันก็วิ่ง
make install
จากนั้นฉันโหลดโมดูล flashcache ด้วย
modprobe flashcache
จากนั้นฉันก็ต้องโหลดอุปกรณ์ flashcache ที่มีอยู่ซึ่งก็คือ
flashcache_load /dev/sdb1
จากนั้นเพียงแค่ติดตั้งพาร์ทิชันที่บ้านของฉันด้วย
mount /home
จากนั้นออกจากการเข้าสู่ระบบในฐานะ root ด้วยการออกในบรรทัดคำสั่งและมันควรจะบูตต่อไปตามปกติ เสร็จหมดแล้ว!