Как добавить кэш SSD на зашифрованный жесткий диск для настольных ПК /GUI?
SSHD, похоже, застряли в 4 ТБ и 8 ГБ кеш SSD ( одна модель доступна с 1 ТБ /32 ГБ), в то время как большие SSD широко доступны, и существуют некоторые решения для сопряжения жесткого диска с SSD в Linux. Я ищу решение, которое легко использовать на рабочем столе после его установки. В идеале нужно щелкнуть один или два значка запуска, ввести пароли для зашифрованного хранилища и смонтировать диск в Nautilus без необходимости запоминать какие-либо конкретные команды.
- Все данные хранилища и кеша должны храниться в зашифрованном виде.
- Отдельный большой жесткий диск доступен для переноса данных на новые схемы разделов или на то, что когда-либо потребуется.
Статьи по теме, которые я прочитал до сих пор:
- http://blog-vpodzime.rhcloud.com/?p=45 - сравнение bcache и LVM-кеша
- http://blog.zorangagic.com/2016/01/linux-flash-caching-bcache-and-dm-cache.html
- AU: Как установить Ubuntu как с шифрованием диска, так и с SSD-кэшированием - это близко, но существующие ответы расходятся с тем, что я ищу.
- AU: Есть ли какое-либо решение для кэширования SSD для Ubuntu 15.10? - Это о корневом разделе без шифрования.
- Как добавить dm-кеш в уже существующую настройку luks?
- https://wiki.archlinux.org/index.php/LVM
1 ответ
некорневой LVM на LUKS
Вступление
Информация:
- Я только начал использовать LVM из-за этой функции, и я намеревался использовать зашифрованный раздел данных с SSD для кэширования.
- Я обычно использую ZFS в Linux (см. Также ARC) для архивирования данных и избыточности, которые, как представляется, легче администрировать и настраивать. Возможно, вы захотите взглянуть на ZFS, если хотите использовать более одного жесткого диска, однако преимущество, которое LVM имеет над ZFS в Linux, заключается в том, что он не опирается на встроенный модуль ядра DKMS, который может не собираться и работать правильно, если вам нужно например, использовать основные ядра из ядра PPA. (Может быть, я делаю что-то не так с ZFS, но некоторые статьи о Phoronix читаются так, как будто это так.)
- Это предназначено для использования на рабочих станциях, и предпочтительнее использовать решения с графическим интерфейсом, чтобы показать, чего можно достичь с помощью графического интерфейса в настоящее время.
Предостережение:
- Не просто добавляйте SSD в качестве кеша на ваш жесткий диск и ожидайте значительного увеличения производительности. BX200 с 480 ГБ, который я сейчас использую, выглядит разумно, но показал более медленную скорость записи, чем жесткие диски, в тестах и обзорах продуктов. Также обратите внимание, что оба устройства должны записывать данные по умолчанию в одно и то же время, когда они не находятся в режиме кэширования с обратной записью, что повышает риск повреждения данных, поэтому не следует путать удвоенную общую скорость передачи и медленную запись в таких инструментах, как индикатор -multiload.
Обзор:
Чтобы обеспечить более глубокое понимание, вот что я настроил на виртуальной машине после прочтения статей в этом вопросе перед тем, как попробовать ее на реальном оборудовании. luks-
именованные устройства автоматически создаются при использовании графического интерфейса пользователя для разблокировки зашифрованных устройств, LVM обнаружит, что устройства стали доступны, и предложит вам смонтировать файловые системы в nautilus как обычно.
lwbt@vxenial:~$ lsblk
…
sdb 8:16 0 8G 0 disk
└─luks-6bc875f1-de30-4698-ba74-eea2c5d5bb87 252:0 0 8G 0 crypt
└─vg0-datalv_corig 252:5 0 7,9G 0 lvm
└─vg0-datalv 252:1 0 7,9G 0 lvm
sdc 8:32 0 8G 0 disk
└─luks-e20dd038-9886-4895-b786-855ba4c31c7e 252:2 0 8G 0 crypt
├─vg0-cache_cdata 252:3 0 8G 0 lvm
│ └─vg0-datalv 252:1 0 7,9G 0 lvm
└─vg0-cache_cmeta 252:4 0 12M 0 lvm
└─vg0-datalv 252:1 0 7,9G 0 lvm
lwbt@vxenial:~$ ll /dev/mapper/
total 0
drwxr-xr-x 2 root root 180 Sep 6 02:54 ./
drwxr-xr-x 20 root root 4420 Sep 6 02:54 ../
crw------- 1 root root 10, 236 Sep 6 00:37 control
lrwxrwxrwx 1 root root 7 Sep 6 02:54 luks-6bc875f1-de30-4698-ba74-eea2c5d5bb87 -> ../dm-0
lrwxrwxrwx 1 root root 7 Sep 6 02:54 luks-e20dd038-9886-4895-b786-855ba4c31c7e -> ../dm-2
lrwxrwxrwx 1 root root 7 Sep 6 02:54 vg0-cache_cdata -> ../dm-3
lrwxrwxrwx 1 root root 7 Sep 6 02:54 vg0-cache_cmeta -> ../dm-4
lrwxrwxrwx 1 root root 7 Sep 6 02:54 vg0-datalv -> ../dm-1
lrwxrwxrwx 1 root root 7 Sep 6 02:54 vg0-datalv_corig -> ../dm-5
Вывод lsblk может иметь дополнительный уровень, если вы разбиваете блочные устройства (SSD/HDD) вместо прямого шифрования их с помощью LUKS. Конечно, если вас не интересует шифрование LUKS, вы можете пропустить эти шаги в следующих инструкциях, что тоже хорошо.
инструкции
Установите необходимые пакеты:
sudo apt install lvm2 thin-provisioning-tools cryptsetup
Команды в следующем разделе уничтожат все существующие данные на дисках.
Зашифруйте каждое отдельное устройство:
sudo cryptsetup luksFormat ${device_name}
sudo cryptsetup luksOpen ${device_name} ${mapper_name_hdd_or_ssd}
Примечание: gnome-disk имеет опции для шифрования и монтирования зашифрованных устройств, но также создает файловые системы EXT4, которые необходимо удалить, чтобы продолжить, следуя инструкциям.
Затем добавьте устройство в качестве физического тома в LVM, создайте группу томов (с именем vg0
) и логический том (названный datalv
) на жестком диске, который будет отформатирован позже для хранения всех данных:
pvcreate /dev/mapper/${mapper_name_hdd}
vgcreate vg0 /dev/mapper/${mapper_name_hdd}
lvcreate -l 100%pvs -n datalv vg0 /dev/mapper/${mapper_name_hdd}
Замечания: 100%pvs
создаст том, охватывающий все выбранное вами устройство (например, зашифрованный контейнер или раздел). Более подробную информацию и опции можно найти в lvmcache и других справочных страницах.
Теперь расширьте конфигурацию LVM, добавив SSD в группу томов:
pvcreate /dev/mapper/${mapper_name_ssd}
vgextend vg0 /dev/mapper/${mapper_name_ssd}
Создайте том кеш-пула с именем cache
в vg0
на SSD, затем добавьте новый пул кеша в качестве кеша datalv
:
lvcreate --type cache-pool -l 100%pvs -n cache vg0 /dev/mapper/${mapper_name_ssd}
lvconvert --type cache --cachepool vg0/cache vg0/datalv
Примечание: lvcreate автоматически выберет для вас оптимальные размеры для cache_cdata и cache_cmeta.
После внесения изменений в конфигурацию LVM может потребоваться повторное сканирование pv, vg и lv для активации устройств LVM, если вы хотите избежать перезагрузки:
pvscan
vgscan
lvscan
vgchange -ay
Следующая команда деактивирует все тома LVM, если имя не указано:
vgchange -an
Наконец пришло время отформатировать логический том и передать данные.
Пример для форматирования с использованием Gparted GUI
pkexec gparted /dev/mapper/vg0-datalv
Пример форматирования с использованием инструментов командной строки:
sudo mkfs.ext4 /dev/mapper/vg0-datalv
Теперь новая файловая система должна появиться в Nautilus.
использование
Многие команды LVM делают настройку довольно сложной, хотя она может даже не использовать весь потенциал LVM для опытных пользователей, но после ее настройки и перезагрузки компьютера вам просто нужно смонтировать зашифрованные диски из модуля запуска Unity или изнутри gnome- диски, затем подключите том, который отображается в Nautilus, как любая другая файловая система или диск. Запоминание сложных команд не требуется. Насколько мне известно, в настоящее время нет доступных инструментов GUI для обработки LVM пула кеша в Ubuntu.
Заметки:
- Я предпочитаю монтировать устройство SSD с меньшим зашифрованным кешем перед монтированием HDD
- Кэш может быть удален и заменен, см. Удаление кеша на странице руководства lvmcache.
Для отображения всех метрик о кеше вы можете использовать следующую команду:
sudo lvs -o+cache_total_blocks,cache_used_blocks,cache_dirty_blocks,cache_read_hits,cache_read_misses,cache_write_hits,cache_write_misses,cachemode,cache_policy,cache_settings