bcache over bcache
Aug. 6th, 2021 11:05 pmКак поставить линукс в виртуалке на bcache, при условии что инсталлятор его не поддерживает? Конечно же, отредактировать диск напрямую хостом, подключив его через loop или nbd. Итого имеем следующий "i/o-стек":
0. /dev/sda — обычный физический hdd. Из него порождается:
1. /dev/bcache0 — кэшированный "прокси" для доступа через кэш (bcache просто так работает, вставая промежуточной прослойкой за неимением фильтр-драйверов).
2. cryptsetup+LVM — вполне обычный сетап, расписанный в десятках мануалов.
3. ext4 на одном из томов lvm смонтированная в /home
4. machine.vdi — желанный образ диска, куда мы имеем намерение ставить виртуалку.
Это еще нестрашно, это моя обычная конфигурация, работающая у меня годами. Но мы же хотели виртуальный диск размечать, да?
5. Цепляем machine.vdi к nbd0 с помощью qemu-nbd. Разбиваем на разделы, пока всё еще штатно.
6. Создаём еще один bcache поверх /dev/nbd0p2, ядро его все еще видит, любит и понимает.
Ну и наконец вызываем mkfs.ext4 на новосозданный /dev/bcache1.
И вот тути таилась смерть Кощеева всё вешается наглухо. Ну не всё, а mkfs только, но ни прибить его не получается, ни nbd отмонтировать. В ядре невнятная ругань на зависший blkio во время flush, да и всё. Дедлок, подумал Штирлиц.
Бля.
Короче, надо было не выделываться, а просто взять другую виртуалку.
0. /dev/sda — обычный физический hdd. Из него порождается:
1. /dev/bcache0 — кэшированный "прокси" для доступа через кэш (bcache просто так работает, вставая промежуточной прослойкой за неимением фильтр-драйверов).
2. cryptsetup+LVM — вполне обычный сетап, расписанный в десятках мануалов.
3. ext4 на одном из томов lvm смонтированная в /home
4. machine.vdi — желанный образ диска, куда мы имеем намерение ставить виртуалку.
Это еще нестрашно, это моя обычная конфигурация, работающая у меня годами. Но мы же хотели виртуальный диск размечать, да?
5. Цепляем machine.vdi к nbd0 с помощью qemu-nbd. Разбиваем на разделы, пока всё еще штатно.
6. Создаём еще один bcache поверх /dev/nbd0p2, ядро его все еще видит, любит и понимает.
Ну и наконец вызываем mkfs.ext4 на новосозданный /dev/bcache1.
И вот тут
Бля.
Короче, надо было не выделываться, а просто взять другую виртуалку.