HDD'yi SSD'ye önbelleğe almak için flashcache / bcache'i nasıl kurar ve kullanırım?


52

SSD önbelleğe almak için flashcache veya bcache ile oluşturulmuş çekirdeğini kurmayı ve çalıştırmayı deneyen biri olup olmadığını bilmek istiyorum ?

Bunu nasıl başardın?


İyi soru. Bazı cevaplarımda flashcache öneriyorum ( 1 , 2 ). Öyle görünüyor sonraki dm-cache, iş için aracı. Ayrıca , Ubuntu / Linux için Intel Smart Response alternatif arayanlar için de geçerli .
gertvdijk

Ben, tooo Intel SRT'ye alternatif olarak bakıyordu. Kemer wiki burada o kalbin zayıf olmadığını, daha birkaç kelimeyle, diyor. Sorun şu ki, hem iş hem de oyun için tek bilgisayarımda onunla oynamayı planlıyorum :), bu yüzden endişeli ve buraya nasıl gideceğimi umuyordum. Ubuntu'yu bir VM'de çalıştırmak ve sınamak için SSD'de bir diskte (dosya tabanlı) bir sürücüye sahip olmak mümkün olacak mı? O zaman gitmeye istekli :)
kapad

Güzel bir soru, ancak VM'leri test yatağı olarak kullanan bir cevap tamamlandı mı? Pek çok insan buna cevap vermek için gerekli donanıma sahip değil.
RobotHumans,

4
Flashcache için bunu zaten denediniz mi? gerrit-tamboer.net/…
jasmines

4
dm-cache şimdi kararlı 3.9 Linux çekirdek sürümüyle birleştirildi. Sanırım bu 26 oylu soru şimdi bir cevabı hak ediyor. :)
gertvdijk

Yanıtlar:


10

Bir bcache cevabı aldık ama flashcache cevabı yok. Flashcache'i seçtim çünkü zaten mevcut bir kurulumum vardı, bu yüzden bcache söz konusu değildi. Bana göre de kurmak daha kolay görünüyordu. DKMS yöntemini seçtim, böylelikle her bir çekirdek güncellemesi aldığımda modülün / araçların yeniden yapılandırılmasında sıkışıp kalmam.

Bu adımlar Github’daki README-DKMS’de belirtilmiştir .

Modülü Kurmak

  1. Yapmanız gereken ilk şey, binanın ön koşullarını yüklemektir:

    sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
    
  2. Ardından kaynağı yakalayın:

    git clone git://github.com/facebook/flashcache; cd flashcache
    
  3. Modülleri oluşturun ve kurun:

    make -f Makefile.dkms
    

Bir flashcache cihazı oluşturma

(Bu örnekte, geri yazma önbelleğe almayı kullanıyorum - varsayılan - ancak flashcache, etrafa yazma ve ayrıca yazma işlemini de yapabilir)

Kök olmayan (cihaza monte edilmemiş) bir cihaza önbellekleme

sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX Fcache, oluşturulan aygıt (/ dev / mapper / fcache) ise, / dev / sdaX, SSD bölümü (veya tüm disk) ve / dev / sdbX, HDD bölümüdür.

Kök cihazınızı önbelleğe alma

Kök cihazınızı önbelleğe alıyorsanız birkaç adım daha var. Bu bölüm için bir Ubuntu LiveCD / USB'ye ihtiyacınız olacaktır.

  1. cd /path/to/flashcache/source

  2. make -f Makefile.dkms boot_conf

  3. / Dev / mapper / fcache'den önyükleme yapmak için /boot/grub/grub.cnf ve / etc / fstab komutunu düzenleyin (bu adımın gerçekten gerekli olduğuna inanmıyorum, ama diyor). Orijinal kök cihazınızın UUID'sini yazdığınızdan emin olun.

  4. LiveCD / LiveUSB ile yeniden başlatın.

  5. Kök cihazınızı bağlayın: mount /dev/sda4 /mnt(/ dev / sda4 benim Linux kök bölümüm)

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

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

  8. make; sudo make install Tüm DKMS kurulumunu canlı ortamda yapmanız gerekmez

  9. Kök cihazının bağlantısını kes sudo umount /mnt

  10. sudo flashcache_create -p back fcache /dev/sdbX /dev/disk/by-uuid/[UUID] Fcache'nin yarattığı cihaz olduğu yerde (/ etc / fstab ve /boot/grub/grub.cnf dizinindekiyle aynı olmalıdır, benim durumumda fcache idi), / dev / sdbX SSD bölümü (veya tüm disk) ) ve [UUID], kök bölümünüzün UUID'sidir.

  11. Yeniden başlatın!

Kök cihazı kullanırken uyarılar

Kök aygıtı için flashcache kullanıldığında ortaya çıkan küçük bir sıkıntı, grub probunun kök aygıtını tespit edememesi ve önyükleme menünüzü karıştırmasına neden olur; böylece iki Ubuntu girişi olur. Ancak, make -f Makefile.dkms boot_confyukarıdaki adım flashcache cihazını algılayacak ve kullanacak initrd'nize bazı komut dosyaları yüklediğinden , tüm gerçeklikte hangisini kullandığınız önemli değildir .


2
En azından saldırıda flashcache-dkms ve flashcache-utils için paketler olduğunu görüyorum. Kurulum nasıl değişebilir?
ivant

Gerçekten? Fark etmedim. Ben de Raring koşuyorum ama Git deposundan yükledim. Pakete bakmak zorunda kalırdım, ancak ilk birkaç bölümü atlayıp hala bir root cihazını başlatma işleminden geçebileceğinizi hayal edebiliyorum.
Chuck R,

1
ubuntu 13.10'un flashcache-dkms paketi, initramfs için flashcache modülleri ve ikilileri içermez, bu nedenle kökünüzü flashcache yaparsanız, onu önyükleyemezsiniz. Bir hata yarattım : bugs.launchpad.net/ubuntu/+source/flashcache/+bug/1290148 Yukarıda açıklandığı gibi kaynaktan flashcache oluşturdum ve aşağıdaki zinciri başlatabildim: sda7 -> flashcache -> dm- crypt -> lvm -> ext4. Sadece flashcache dev'i / etc / crypttab ve update-initramfs -u
Martin Vysny

grub dosyasına yapmanız gereken değişikliklerle ilgili bir yorum ekleyebilir misiniz?
kapad

Artık grub.cfg dosyasını değiştirmiyorum, gerekli görünmüyor. Ancak, böyle bir değişiklik yaparsınız: 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(yani, root = parametresini değiştirir)
Chuck R

12

Bcache'i mevcut bir cihazda etkinleştirmek için bir dönüştürme aracı var (açıklama: Ben yazdım). Bu aynı zamanda yeni kurulumlara da gitmenin yoludur, çünkü mevcut dağıtımcıların bcache cihazlarını nasıl oluşturacaklarını bilmiyorlar (bu durumda: HDD’ye yükleyerek başlayın).

Talimatlar için README içindeki kök dosya sisteminizi bcache'ye dönüştürmeye bakın blocks.

bcache, Linux 3.10 veya daha yenisini gerektirir, bu da suyludur ve http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D adresinden manuel olarak yüklenebilir (en yeni etiketli sürümü arayın. , şu anda v3.11.5-saucyve mimarinize uyan tabloları yükleyin).

bcache-toolsve ppa depomdanblocks kurulabilir .


1
Bu araç, Ubuntu'nun şu anki (15.04) sürümü için bozuk; bkz. github.com/g2p/maintboot/issues/1 ve github.com/g2p/blocks/issues/13
Jean Jordaan,

Aslında aracın kendisi şu anda bozuk değil (dün 350GB sabit diskte test edildi). Ancak şimdiki versiyonları sistem disketi (dönüştürmek için kullanılamaz /, /home, /usr/Sistem çalışırken (maintboot bozuldu gibi), ...). Alternatif olarak, canlı bir USB Stick blockskullanabilirsiniz, oraya takın ve disklerinizi dönüştürmek için bunu kullanın. Ancak, bu aracın yalnızca birincil MBR ve GPT bölümleme tablolarında çalıştığını ve her bölümden önce 1MiB fazladan boşluk gerektirdiğini unutmayın.
ntninja

5

Önceki uyarı: bcache, mevcut Ubuntu kurulumunuz için kullanılamaz. İşletim sisteminiz için SSD önbelleğe almanız gerekiyorsa, SSD önbelleğinizi ayarlayabilecek gelecek veya özel bir Ubuntu yükleyici sürümünü beklemelisiniz. Burada Oli tarafından verilen cevaba bakınız: bcache yeni bir kurulum gerektiriyor mu?

İşletim sistemi olmayan veriler için bcache sürücüsü isteyen herkes için:

Yapmanız gereken ilk şey, çekirdek ana hat PPA'sını kullanarak 13.04 veya daha eski kullanıyorsanız, çekirdeğinizi yükseltmektir. Bunu kullanmak için talimatlar burada bulunabilir:

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

Önyüklerken 3.9 veya daha yüksek çekirdeği seçtiğinizden emin olun, yoksa çalışmaz ve sürücünüz kaybolur.

Git deposundan yüklemeniz gereken şu anda bcache-tools programını kurun:

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

bcache-toolsDebian paketini yönetiyorsanız , bize bildirin; bu soru sizin için güncellenecektir. ( bcache-tools'nin yapı bağımlılıkları vardır uuid-devve libblkid-dev. Bunları kurmak için kurulmaları gerekir bcache-tools.)

Tüm araçları yerleştirdikten sonra, buradaki kılavuzu izlemeye ve denemeye hazırsınız:

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

Bu kılavuz, sürücülerin (SSD VE sabit sürücü) nasıl biçimlendirileceğini ve ardından bcache kullanarak yeni bir aygıt bloğu oluşturmak için bunları nasıl bağlayacağınızı gösterir. Eğer talimatları kafa karıştırıcı bulursanız bir yorum gönderin ve bu cevabı basitleştirmeler ile güncelleyeceğim.


Çekirdek 3.9'u çalıştıran bir başlangıç ​​disketi oluşturmak ve ardından bcache sürücüsünü oluşturmak ve ubuntu'yu bu sürücünün üstüne yüklemek mümkün müdür?
kapad

kapad - mümkün olmalı, ancak ubuntu kurulumunun önyükleme zamanında doğru sürücülere sahip olduğundan ve grubun bulabilmesi için bcache dışında önyükleme yapmanız gerekebilir.
Martin Owens -doctormo-

2

buraya gelip yeni bir çekirdek kurduğumda başıma gelenler hakkında yorum yapacağımı düşündüm. Yalnızca / home / klasör bölümüm için flashcache kullanıyordum. Yeni bir çekirdek yükledim, açılışta durdum ve açılış sırasında durdu ve / dev / mapper / home_cached bulamadığını söyledi, bu iletiyi alırken sahip olduğunuz 3 seçenek var ve root olarak giriş yapma seçeneğini tercih ediyorum. tamir etmeye çalış. İlk önce flashcache modülünü yüklemeye çalıştım ve bulamadığını söyledi. Böylece yeni kurduğum bu çekirdek için derleyip kurmam gerekeceğini düşündüm. hala / rootc içinde / flashcache / klasörüne sahiptim, bu yüzden içine cd'dim ve koştum.

make -f Makefile.dkms boot_conf

sonra koştum

make install

sonra flashcache modülünü yükledim

modprobe flashcache

o zaman sadece mevcut flashcache cihazımı yüklemek zorunda kaldım

flashcache_load /dev/sdb1

sonra sadece benim ev bölümü ile

mount /home

daha sonra komut satırında exit ile root olarak giriş yapmış olduğunuzdan çıkın ve normal şekilde açılmaya devam etmesi gerekir. hepsi tamam!


Bu hala çalışıyorsa merak ediyorum, artık bitirdim ve artık flashcache kullanmıyorum, sadece dahili bellenim nedeniyle Arch'i 64GB SSD'ye yükledim (linux çekirdeği bunun sadece 32GB olduğunu düşünüyor). Bunun bazı buhar oyunları için önbellekleme aracı olarak yararlı olduğunu görebiliyordum.
Teknoloji Gurusu Ubu,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.