Chcę wiedzieć, czy jest ktoś, kto próbował zainstalować i uruchomić jądro zbudowane z pamięci flashcache lub bcache do buforowania SSD?
Jak ci się to udało?
Chcę wiedzieć, czy jest ktoś, kto próbował zainstalować i uruchomić jądro zbudowane z pamięci flashcache lub bcache do buforowania SSD?
Jak ci się to udało?
Odpowiedzi:
Mamy odpowiedź na pamięć podręczną, ale brak odpowiedzi na pamięć flash. Wybrałem flashcache, ponieważ miałem już istniejącą instalację, więc nie było mowy o bcache. Dla mnie też wydawało się, że łatwiej jest skonfigurować. Wybrałem metodę DKMS, aby nie utknąć przy przebudowywaniu modułu / narzędzi za każdym razem, gdy otrzymuję aktualizację jądra.
Te kroki opisano w README-DKMS na Github.
Budowanie modułu
Pierwszą rzeczą, którą robisz, jest instalacja wymagań wstępnych budynku:
sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
Następnie złap źródło:
git clone git://github.com/facebook/flashcache; cd flashcache
Zbuduj i zainstaluj moduły:
make -f Makefile.dkms
Tworzenie urządzenia flashcache
(W tym przykładzie używam buforowania z zapisem wstecznym - domyślnie - ale flashcache może także wykonywać zapisywanie i zapisywanie)
Buforowanie urządzenia innego niż root (nie zamontowane w /)
sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX
Gdzie fcache jest utworzonym urządzeniem (/ dev / mapper / fcache), / dev / sdaX to część SSD (lub cały dysk), a / dev / sdbX to partycja HDD.
Buforowanie urządzenia roota
Jest jeszcze kilka kroków, jeśli buforujesz urządzenie root. Będziesz potrzebował Ubuntu LiveCD / USB dla tej sekcji.
cd /path/to/flashcache/source
make -f Makefile.dkms boot_conf
Edytuj /boot/grub/grub.cnf i / etc / fstab, aby uruchomić z / dev / mapper / fcache (nie sądzę, aby ten krok był naprawdę konieczny, ale tak mówi). Pamiętaj, aby zapisać identyfikator UUID oryginalnego urządzenia root.
Uruchom ponownie z LiveCD / LiveUSB.
Podłącz urządzenie root: mount /dev/sda4 /mnt
(/ dev / sda4 to moja partycja root Linux)
cd /mnt/path/to/flashcache/source
sudo apt-get install dkms build-essential linux-headers-$(uname -r)
make; sudo make install
Nie ma potrzeby wykonywania całej konfiguracji DKMS w środowisku na żywo
Odmontuj urządzenie root sudo umount /mnt
sudo flashcache_create -p back fcache /dev/sdbX /dev/disk/by-uuid/[UUID]
Gdzie fcache jest utworzonym urządzeniem (powinno być takie samo jak w / etc / fstab i /boot/grub/grub.cnf, w moim przypadku było to fcache), / dev / sdbX to partycja SSD (lub cały dysk ), a [UUID] to UUID partycji głównej.
Restart!
Ostrzeżenia dotyczące korzystania z urządzenia root
Jedną z drobnych irytujących sytuacji, gdy flashcache jest używany dla urządzenia root, jest to, że grub-probe nie wykrywa urządzenia root i może zepsuć menu startowe, dzięki czemu masz dwa wejścia Ubuntu. Ale nie powinno mieć znaczenia, którego używasz w rzeczywistości, ponieważ make -f Makefile.dkms boot_conf
powyższy krok instaluje w twoim initrd kilka skryptów, które wykryją i użyją urządzenia flashcache.
linux /boot/vmlinuz-3.19.0-51-lowlatency root=UUID=0a540b91-5990-4df0-bc99-5d6e2cd3fed6 ro recovery nomodeset
na linux /boot/vmlinuz-3.19.0-51-lowlatency root=/dev/mapper/fcache ro recovery nomodeset
(tj. Zmień parametr root =)
Istnieje narzędzie do konwersji umożliwiające włączenie bcache na istniejącym urządzeniu (ujawnienie: napisałem to). Jest to również droga do nowych instalacji, ponieważ obecni instalatorzy dystrybucji nie wiedzą, jak tworzyć urządzenia bcache (w takim przypadku: zacznij od instalacji na dysku twardym).
Instrukcje można znaleźć w sekcji Konwertowanie głównego systemu plików na pamięć podręczną w blocks
README.
bcache wymaga Linuksa 3.10 lub nowszego, który jest pyskaty i można go zainstalować ręcznie ze strony
http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D (poszukaj najnowszej oznaczonej wersji , obecnie v3.11.5-saucy
i zainstaluj debaty pasujące do Twojej architektury).
bcache-tools
i blocks
może być zainstalowany z mojego magazynu ppa .
/
, /home
, /usr/
, ...) podczas pracy systemu (jak maintboot jest uszkodzony). Alternatywnie możesz użyć pamięci USB na żywo, zainstalować blocks
ją i użyć do konwersji dysków. Należy jednak pamiętać, że to narzędzie działa tylko na podstawowych tablicach partycji MBR i GPT i wymaga 1 MB dodatkowego miejsca przed każdą partycją.
Wcześniejsze ostrzeżenie: Bcache nie może być używany do twojej instalacji Ubuntu. Jeśli potrzebujesz buforowania SSD dla twojego systemu operacyjnego, powinieneś poczekać na przyszłą lub specjalną wersję instalatora Ubuntu, która może skonfigurować pamięć podręczną SSD. Zobacz odpowiedź Oli tutaj: czy bcache wymaga nowej instalacji?
Dla wszystkich innych, którzy chcą dysku bcache dla danych innych niż OS:
Pierwszą rzeczą do zrobienia jest uaktualnienie jądra, jeśli używasz 13.04 lub starszej wersji, używając głównego PPA jądra. Instrukcje korzystania z tego można znaleźć tutaj:
https://wiki.ubuntu.com/Kernel/MainlineBuilds
Upewnij się, że wybrałeś jądro w wersji 3.9 lub wyższej podczas uruchamiania, w przeciwnym razie dysk nie będzie działał, a dysk zniknie.
Zainstaluj narzędzia bcache, w tej chwili będziesz musiał zainstalować z repozytorium git:
git clone http://evilpiepirate.org/git/bcache-tools.git
Jeśli uda ci się spakować pakiet bcache-tools
dla Debiana, daj nam znać, a to pytanie zostanie dla Ciebie zaktualizowane. ( bcache-tools
Zależnościami kompilacji są uuid-dev
i libblkid-dev
. Muszą być zainstalowane, aby budować bcache-tools
.)
Gdy masz już wszystkie narzędzia, możesz spróbować zastosować się do przewodnika tutaj:
http://atlas.evilpiepirate.org/git/linux-bcache.git/tree/Documentation/bcache.txt
Ten przewodnik pokazuje, jak sformatować dyski (SSD I dysk twardy), a następnie połączyć je ze sobą, aby utworzyć nowy blok urządzenia za pomocą bcache. Opublikuj komentarz, jeśli uznasz instrukcje za mylące, a ja zaktualizuję tę odpowiedź z uproszczeniami.
myślałem, że przyjdę tutaj i skomentuję, co mi się przydarzyło, gdy zainstalowałem nowe jądro. Używałem flashcache tylko do partycji / home / folder. Zainstalowałem nowe jądro, uruchomiłem je i zatrzymało się podczas uruchamiania i powiedziałem, że nie może znaleźć / dev / mapper / home_cached, są 3 opcje, które masz po otrzymaniu tego komunikatu i wybieram opcję zalogowania się jako root i spróbuj to naprawić. Najpierw próbowałem załadować moduł flashcache i powiedział, że nie może go znaleźć. Pomyślałem, że będę musiał go skompilować i zainstalować dla nowego właśnie zainstalowanego jądra. wciąż miałem folder / flashcache / w katalogu / root /, więc zapisałem go i uruchomiłem
make -f Makefile.dkms boot_conf
potem pobiegłem
make install
następnie załadowałem moduł flashcache
modprobe flashcache
po prostu musiałem załadować moje istniejące urządzenie flashcache, które było
flashcache_load /dev/sdb1
następnie po prostu zamontuj moją partycję domową za pomocą
mount /home
następnie wyjdź z bycia zalogowanym jako root z wyjściem w linii poleceń i powinien kontynuować normalne uruchamianie. wszystko gotowe!