Bagaimana cara saya menginstal dan menggunakan flashcache / bcache untuk melakukan cache HDD ke SSD?

52

Saya ingin tahu apakah ada orang yang telah mencoba menginstal dan menjalankan kernel yang dibangun dengan flashcache atau bcache untuk caching SSD?

Bagaimana Anda bisa melakukannya?

kapad
sumber
Pertanyaan bagus. Saya telah menyarankan flashcache dalam beberapa jawaban saya ( 1 , 2 ). Tampaknya para alat untuk pekerjaan, di samping dm-Cache. Ini juga relevan untuk semua orang yang mencari alternatif untuk Intel Smart Response untuk Ubuntu / Linux.
gertvdijk
Saya, tooo melihatnya sebagai alternatif untuk Intel SRT. Arch wiki di sini mengatakan, dalam beberapa kata lagi, bahwa itu bukan untuk orang yang lemah hati. Masalahnya adalah bahwa saya berencana untuk bermain-main dengannya di PC saya hanya untuk bekerja dan bermain :), jadi was-was dan berharap untuk mendapatkan cara di sini. Apakah Anda pikir akan mungkin untuk menjalankan ubuntu pada VM dan memiliki satu drive (berbasis file) pada disk satu pada SSD (sekali lagi, berbasis file) untuk menguji. Bersedia mencobanya :) :)
kapad
Pertanyaan yang bagus, tetapi apakah jawaban yang menggunakan VM sebagai test bed dianggap lengkap? Banyak orang tidak memiliki perangkat keras yang diperlukan untuk benar-benar menjawab ini.
RobotHumans
4
sudah mencoba ini untuk Flashcache? gerrit-tamboer.net/...
jasmines
4
dm-cache sekarang telah dilebur ke dalam rilis kernel Linux 3.9 yang stabil. Saya kira pertanyaan 26-suara ini layak mendapat jawaban sekarang. :)
gertvdijk

Jawaban:

10

Yah, kami mendapat jawaban bcache tetapi tidak ada jawaban flashcache. Saya memilih flashcache karena saya sudah memiliki instalasi yang sudah ada, jadi bcache keluar dari pertanyaan. Bagi saya, sepertinya lebih mudah diatur juga. Saya memilih metode DKMS sehingga saya tidak akan terjebak membangun kembali modul / alat setiap kali saya mendapat upgrade kernel.

Langkah-langkah ini diuraikan dalam README-DKMS di Github.

Membangun Modul

  1. Hal pertama yang Anda lakukan adalah memasang prasyarat bangunan:

    sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
    
  2. Kemudian ambil sumbernya:

    git clone git://github.com/facebook/flashcache; cd flashcache
    
  3. Bangun dan pasang modul:

    make -f Makefile.dkms
    

Membuat perangkat flashcache

(Dalam contoh ini saya menggunakan cache writeback - default - tetapi flashcache dapat melakukan writearound dan writethrough juga)

Caching perangkat non-root (tidak dipasang di /)

sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX Di mana fcache adalah perangkat yang dibuat (/ dev / mapper / fcache), / dev / sdaX adalah partisi SSD (atau seluruh disk) dan / dev / sdbX adalah partisi HDD.

Caching perangkat root Anda

Ada beberapa langkah lagi jika Anda melakukan cache perangkat root Anda. Anda memerlukan Ubuntu LiveCD / USB untuk bagian ini.

  1. cd /path/to/flashcache/source

  2. make -f Makefile.dkms boot_conf

  3. Edit / boot / grub/grub.cnf dan / etc / fstab untuk mem-boot dari / dev / mapper / fcache (Saya tidak percaya langkah ini benar-benar diperlukan, tetapi dikatakan demikian). Pastikan untuk menuliskan UUID perangkat root asli Anda.

  4. Reboot dengan LiveCD / LiveUSB.

  5. Pasang perangkat root Anda: mount /dev/sda4 /mnt(/ dev / sda4 adalah partisi root Linux saya)

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

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

  8. make; sudo make install Tidak perlu melakukan seluruh pengaturan DKMS di lingkungan langsung

  9. Lepas perangkat root sudo umount /mnt

  10. sudo flashcache_create -p back fcache /dev/sdbX /dev/disk/by-uuid/[UUID] Di mana fcache adalah perangkat yang dibuat (harus sama dengan yang Anda letakkan di / etc / fstab dan /boot/grub/grub.cnf, dalam kasus saya itu fcache), / dev / sdbX adalah partisi SSD (atau seluruh disk ) dan [UUID] adalah UUID dari partisi root Anda.

  11. Nyalakan kembali!

Peringatan saat menggunakan perangkat root

Satu gangguan kecil ketika flashcache digunakan untuk perangkat root adalah bahwa grub-probe gagal mendeteksi perangkat root dan dapat mengacaukan menu boot Anda sehingga Anda memiliki dua keinginan Ubuntu. Tapi, seharusnya tidak masalah yang Anda gunakan di semua kenyataan karena make -f Makefile.dkms boot_conflangkah di atas menginstal beberapa skrip di initrd Anda yang akan mendeteksi dan menggunakan perangkat flashcache.

Chuck R
sumber
2
Saya melihat bahwa paling tidak di raring ada paket untuk flashcache-dkms dan flashcache-utils. Bagaimana perubahan instalasi?
ivant
Oh benarkah? Saya tidak memperhatikan. Saya juga menjalankan Raring tetapi menginstalnya dari repositori Git. Saya harus melihat paketnya, tetapi saya dapat membayangkan bahwa Anda dapat melewati bagian pasangan pertama dan masih menjalankan proses mem-boot perangkat root.
Chuck R
1
paket flashcache-dkms ubuntu 13.10 tidak termasuk modul flashcache dan binari ke initramfs, oleh karena itu jika Anda menginstal flashcache root, Anda tidak akan bisa mem-bootnya. Saya telah membuat bug: bugs.launchpad.net/ubuntu/+source/flashcache/+bug/1290148 Saya telah membuat flashcache dari sumber seperti dijelaskan di atas dan saya dapat mem-boot rantai berikut: sda7 -> flashcache -> dm- crypt -> lvm -> ext4. Cukup tambahkan flashcache dev ke / etc / crypttab dan perbarui-initramfs -u
Martin Vysny
Anda dapat menambahkan komentar dengan perubahan yang harus Anda lakukan pada file grub.
kapad
Saya tidak mengubah grub.cfg lagi, sepertinya tidak perlu. Namun, Anda melakukan perubahan seperti ini: linux /boot/vmlinuz-3.19.0-51-lowlatency root=UUID=0a540b91-5990-4df0-bc99-5d6e2cd3fed6 ro recovery nomodesetto linux /boot/vmlinuz-3.19.0-51-lowlatency root=/dev/mapper/fcache ro recovery nomodeset(yaitu, mengubah root = parameter)
Chuck R
12

Ada alat konversi untuk mengaktifkan bcache pada perangkat yang ada (pengungkapan: Saya menulisnya). Ini juga cara untuk menginstal baru, karena installer distro saat ini tidak tahu cara membuat perangkat bcache (dalam hal ini: mulai dengan menginstal ke HDD).

Lihat mengonversi sistem file root Anda menjadi bcache di blocksREADME untuk instruksi.

bcache membutuhkan Linux 3.10 atau yang lebih baru, yang berada di cakep, dan dapat diinstal secara manual dari http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D (mencari rilis tag terbaru , saat ini v3.11.5-saucy, dan instal debs yang cocok dengan arsitektur Anda).

bcache-toolsdan blocksdapat diinstal dari ppa penyimpanan saya .

Gabriel
sumber
1
Alat ini rusak untuk versi Ubuntu saat ini (15,04); lihat github.com/g2p/maintboot/issues/1 dan github.com/g2p/blocks/issues/13
Jean Jordaan
Sebenarnya alat itu sendiri tidak rusak saat ini (diuji kemarin pada hard drive 350GB). Namun versi saat ini tidak dapat digunakan untuk mengkonversi sistem disk ( /, /home, /usr/, ...) sedangkan sistem berjalan (seperti maintboot rusak). Sebagai alternatif, Anda dapat menggunakan USB Stick hidup, instal di blockssana dan gunakan itu untuk mengubah disk Anda. Namun berhati-hatilah bahwa alat ini hanya berfungsi pada tabel partisi MBR dan GPT primer dan membutuhkan ruang tambahan 1MiB sebelum setiap partisi.
ntninja
5

Peringatan sebelumnya: bcache tidak dapat digunakan untuk instalasi Ubuntu yang ada. Jika Anda memerlukan caching SSD untuk sistem operasi Anda, Anda harus menunggu untuk masa depan atau versi khusus dari penginstal Ubuntu yang dapat mengatur cache SSD Anda. Lihat jawaban ini oleh Oli di sini: Apakah bcache memerlukan instalasi baru?

Untuk semua orang yang menginginkan drive bcache untuk data non-OS:

Hal pertama yang harus dilakukan adalah memutakhirkan kernel Anda jika Anda menggunakan 13,04 atau lebih tua menggunakan kernel utama PPA. Petunjuk untuk menggunakan ini dapat ditemukan di sini:

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

Pastikan Anda memilih kernel 3.9 atau lebih tinggi saat booting atau itu tidak bekerja dan drive Anda akan hilang.

Instal bcache-tools, saat ini Anda harus menginstal dari repositori git:

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

Jika Anda berhasil mengemas bcache-toolsdebian, beri tahu kami dan pertanyaan ini akan diperbarui untuk Anda. ( bcache-toolsKetergantungan build adalah uuid-devdan libblkid-dev. Mereka harus diinstal, untuk membangun bcache-tools.)

Setelah Anda memiliki semua alat di tempat, Anda siap untuk mencoba dan ikuti panduan di sini:

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

Panduan ini menunjukkan cara memformat drive (SSD DAN hard drive) dan kemudian memasangnya bersama-sama untuk membuat blok perangkat baru menggunakan bcache. Posting komentar jika Anda menemukan instruksi membingungkan dan saya akan memperbarui jawaban ini dengan penyederhanaan.

Martin Owens -doctormo-
sumber
Apakah mungkin untuk membuat disk startup yang menjalankan kernel 3.9 dan kemudian membuat drive bcache dan menginstal ubuntu di atas drive ini?
kapad
kapad - seharusnya mungkin, tetapi Anda harus memastikan instalasi ubuntu memiliki driver yang tepat tersedia saat boot dan Anda mungkin harus membuat boot di luar bcache agar grub dapat menemukannya.
Martin Owens -doctormo-
2

Saya pikir saya akan datang ke sini dan berkomentar tentang apa yang terjadi pada saya ketika saya menginstal kernel baru. Saya menggunakan flashcache hanya untuk partisi / home / folder saya. Saya menginstal kernel baru, boot ke dalamnya dan berhenti saat bootup dan mengatakan tidak dapat menemukan / dev / mapper / home_cached, ada 3 pilihan yang Anda miliki ketika Anda menerima pesan ini dan saya memilih opsi untuk login sebagai root dan berupaya memperbaikinya. Saya pertama kali mencoba memuat modul flashcache dan dikatakan tidak bisa menemukannya. Jadi saya pikir saya harus mengkompilasi dan menginstalnya untuk kernel baru ini yang baru saja saya instal. saya masih memiliki folder / flashcache / terletak di dalam / root / jadi saya cd'd ke dalamnya dan berlari

make -f Makefile.dkms boot_conf

lalu aku berlari

make install

kemudian saya memuat modul flashcache dengan

modprobe flashcache

maka saya hanya perlu memuat perangkat flashcache yang ada

flashcache_load /dev/sdb1

maka cukup pasang partisi rumah saya dengan

mount /home

kemudian keluar dari login sebagai root dengan keluar pada baris perintah dan itu harus melanjutkan boot seperti biasa. semua selesai!

Ubu Guru Teknologi
sumber
Saya ingin tahu apakah ini masih bekerja, saya akhirnya beralih dan tidak menggunakan flashcache lagi, saya baru saja menginstal Arch pada SSD 64GB (kernel linux berpikir itu hanya 32GB namun) karena firmware internal. Saya bisa melihat ini bermanfaat sebagai drive caching untuk beberapa gim uap.
Ubu the Tech Guru