Як встановити та використовувати flashcache / bcache для кешування жорсткого диска на SSD?


52

Хочу знати, чи є хтось, хто спробував встановити і запустити своє ядро, побудоване з flashcache або bcache для кешування SSD?

Як вам вдалося це зробити?


Гарне питання. Я пропоную флеш-кеш у деяких своїх відповідях ( 1 , 2 ). Здається , в інструмент для роботи, поряд з дм-кеша. Це також стосується всіх, хто шукає альтернативу Intel Smart Response для Ubuntu / Linux.
gertvdijk

Я теж бачив на це альтернативу Intel SRT. Арка wiki тут говорить ще кількома словами, що це не для слабкого серця. Проблема полягає в тому, що я планую пограти з ним на своєму єдиному ПК як для роботи, так і для гри :), так що з побоюванням і сподіваючись знайти тут як. Як ви думаєте, можна буде запустити ubuntu на VM та мати один диск (на основі файлу) на диску, а на SSD (знову ж таки, файл) для тестування. Готові віддати це тоді :)
kapad

Приємне запитання, але чи відповідь, що використовує VM як тестовий шар, вважається завершеним? Багато людей не мають необхідного обладнання, щоб реально відповісти на це.
RobotHumans

4
Ви вже пробували це для Flashcache? gerrit-tamboer.net/…
жасмини

4
dm-кеш тепер об’єднано у стабільний версію ядра 3,9 Linux. Я думаю, це запитання на 26 голосів заслуговує на відповідь зараз. :)
gertvdijk

Відповіді:


10

Ну, ми отримали відповідь bcache, але не відповіді на flashcache. Я вибрав флеш-кеш, тому що в мене вже була встановлена ​​установка, тому bcache не піддавався сумніву. Мені здалося, що так само простіше налаштувати. Я вибрав метод DKMS, щоб я не затримувався перебудовувати модуль / інструменти щоразу, коли отримував оновлення ядра.

Ці кроки викладені в README-DKMS на Github.

Побудова модуля

  1. Перше, що ви робите, це встановити будівельні передумови:

    sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
    
  2. Потім зачепіть джерело:

    git clone git://github.com/facebook/flashcache; cd flashcache
    
  3. Побудова та встановлення модулів:

    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.

  1. cd /path/to/flashcache/source

  2. make -f Makefile.dkms boot_conf

  3. Відредагуйте /boot/grub/grub.cnf та / etc / fstab для завантаження з / dev / mapper / fcache (я не вірю, що цей крок дійсно необхідний, але він говорить). Не забудьте записати UUID свого оригінального кореневого пристрою.

  4. Перезавантажте програму LiveCD / LiveUSB.

  5. Підключіть свій кореневий пристрій: mount /dev/sda4 /mnt(/ dev / sda4 - мій кореневий розділ Linux)

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

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

  8. make; sudo make install Не потрібно робити цілі налаштування DKMS у прямому середовищі

  9. Демонтуйте кореневий пристрій sudo umount /mnt

  10. 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 вашого кореневого розділу.

  11. Перезавантажте!

Застереження при використанні кореневого пристрою

Невеликий роздратування, коли флеш-кеш використовується для кореневого пристрою, полягає в тому, що grub-зонд не може виявити кореневий пристрій і може зіпсувати ваше завантажувальне меню, щоб у вас було два входи Ubuntu. Але це не має значення, яким ви користуєтесь у будь-якій реальності, оскільки на make -f Makefile.dkms boot_confетапі вище встановлено деякі сценарії у вашому initrd, які виявлять та використовувати пристрій flashcache.


2
Я бачу, що принаймні в raring є пакунки для flashcache-dkms та flashcache-utils. Як змінилася б установка?
ivant

О, справді? Я не помічав. Я також запускаю Raring, але встановив його з репозиторію Git. Я повинен був би переглянути пакет, але я можу собі уявити, що ви зможете пропустити перші пара секцій і все-таки пропустити процес завантаження кореневого пристрою.
Чак Р

1
Пакет flashcache-dkms ubuntu 13.10 не включає модулі flashcache та бінарні файли до initramfs, тому якщо ви flashcache вашого root не зможете його завантажувати. Я створив помилку: bugs.launchpad.net/ubuntu/+source/flashcache/+bug/1290148 Я створив flashcache з джерела, як описано вище, і мені вдалося завантажити наступний ланцюжок: sda7 -> flashcache -> dm- склеп -> lvm -> ext4. Просто додайте flashcache dev в / etc / crypttab та update-initramfs -u
Мартін Висний

чи можете ви додати коментар до змін, які вам довелося внести до файлу grub.
капад

Я більше не змінюю grub.cfg, це не здається необхідним. Однак ви зробите подібні зміни: 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(тобто змінити root = параметр)
Чак R

12

Існує інструмент перетворення для включення bcache на існуючому пристрої (розкриття: я написав це). Це також спосіб перейти до нових інсталяцій, оскільки нинішні інсталятори дистрибутивів не знають, як створити bcache пристрої (у цьому випадку: почніть з установки на жорсткий диск).

Інструкції див. Про перетворення кореневої файлової системи в bcache у програмі blocksREADME.

bcache вимагає Linux 3.10 або новішої версії, який є досконалим, і його можна встановити вручну з http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D (шукайте найновіший тег випуску на даний момент v3.11.5-saucyта встановіть деби, які відповідають вашій архітектурі).

bcache-toolsі blocksможе бути встановлений із моєї пам'яті ppa .


1
Цей інструмент зламано для поточної (15.04) версії Ubuntu; дивіться github.com/g2p/maintboot/isissue/1 та github.com/g2p/blocks/isissue/13
Жан Йордан

Насправді сам інструмент не зламаний (протестований вчора на жорсткому диску 350 Гб). Однак поточні версії не можуть бути використані для перетворення системних дисків ( /, /home, /usr/, ...) в той час як система працює (як maintboot зламана). В якості альтернативи ви можете використовувати живу USB-накопичувач, встановлювати blocksїї та використовувати її для перетворення дисків. Однак майте на увазі, що цей інструмент працює лише на первинних таблицях розділів MBR та GPT і вимагає 1MiB додаткового місця перед кожним розділом.
ntninja

5

Попереднє попередження: bcache не можна використовувати для вашої існуючої установки Ubuntu. Якщо вам потрібне кешування SSD для вашої операційної системи, вам слід дочекатися майбутньої або спеціальної версії інсталятора Ubuntu, яка могла б налаштувати ваш кеш SSD. Дивіться цю відповідь Олі тут: чи потребує bcache свіжа установка?

Для всіх інших, хто хоче накопичувач bcache для даних, що не належать до ОС:

Перше, що потрібно зробити, - це оновити ядро, якщо ви використовуєте 13.04 або старші, використовуючи PPA основної лінії ядра. Інструкції по використанню цього можна знайти тут:

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

Переконайтесь, що ви вибрали ядро ​​3,9 або вище під час завантаження або воно не працюватиме, а ваш диск зникне.

Встановіть bcache-інструменти, на даний момент вам доведеться встановити з сховища git:

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

Якщо вам вдасться упакувати bcache-toolsдля debian, повідомте нас, і це питання буде оновлено для вас. ( bcache-toolsзалежності залежно від побудови є uuid-devі libblkid-devвони повинні бути встановлені, щоб будувати bcache-tools.)

Як тільки у вас є всі інструменти на місці, ви готові спробувати і дотримуватися інструкції тут:

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

У цьому посібнику показано, як відформатувати диски (SSD AND жорсткий диск), а потім з'єднати їх, щоб створити новий блок пристроїв за допомогою bcache. Залиште коментар, якщо ви вважаєте, що інструкція є заплутаною, і я оновлю цю відповідь спрощеннями.


Чи можливо створити запуск диска під керуванням ядра 3.9, а потім створити диск bcache та встановити ubuntu поверх цього диска?
капад

kapad - це повинно бути можливо, але вам доведеться переконатися, що установка ubuntu мала правильні драйвери, доступні під час завантаження, і вам, можливо, доведеться робити завантаження поза bcache, щоб grub міг його знайти.
Мартін Оуенс -доктормо-

2

я думав, що приїду сюди і прокоментую те, що сталося зі мною, коли я встановив нове ядро. Я використовував флеш-кеш лише для мого / домашнього / розділу папок. Я встановив нове ядро, завантажився в нього і він зупинився під час завантаження і сказав, що він не може знайти / dev / mapper / home_cached, є 3 варіанти, коли ви отримуєте це повідомлення, і я вибираю варіант для входу як root і спроба виправити це. Я спершу спробував завантажити модуль flashcache, і він сказав, що не може його знайти. Тому я зрозумів, що мені доведеться компілювати та встановлювати його для цього ядра, яке я щойно встановив. У мене все ще була папка / flashcache /, розташована всередині / root /, тому я ввійшов до неї і побіг

make -f Makefile.dkms boot_conf

потім я побіг

make install

потім я завантажив модуль flashcache

modprobe flashcache

тоді я просто повинен був завантажити свій існуючий пристрій flashcache, який був

flashcache_load /dev/sdb1

тоді просто монтуйте мою домашню перегородку

mount /home

потім вийдіть із входу в систему як корінь з виходом у командному рядку, і він повинен продовжувати завантаження як звичайне. все зроблено!


Мені цікаво, якщо це все-таки працює, я закінчив перемикання і більше не використовую флеш-кеш, я просто встановив Arch на 64 ГБ SSD (ядро Linux вважає, що це лише 32 ГБ), завдяки внутрішній прошивці. Я міг би бачити, що це корисно як кешування керування для деяких ігор на пару.
Ubu the Tech Guru
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.