Как btrfs предотвращает повреждение данных без ведения журнала?

По неизвестным причинам (ошибка? )вы должны явно использовать флаг -tдля указания типа консоли, который может быть любым из двух serialиз pv. Либо работает!

Таким образом, любая из следующих двух работ:
sudo xl console -t pv sys-net
sudo xl console -t serial sys-net
Но это не сработает дляsys-net:
sudo xl console sys-net

$ xl console --help
Usage: xl [-v] console [options] <Domain>
-t <type>       console type, pv or serial
-n <number>     console number

Attach to domain's console.

[ctor@dom0 ~]$ sudo xl console -t pv sys-net 

Fedora 28 (Twenty Eight)
Kernel 4.14.67-1.pvops.qubes.x86_64 on an x86_64 (hvc0)

sys-net login:

[ctor@dom0 ~]$ sudo xl console -t serial sys-net 

Fedora 28 (Twenty Eight)
Kernel 4.14.67-1.pvops.qubes.x86_64 on an x86_64 (hvc0)

sys-net login: 

[ctor@dom0 ~]$ sudo xl console sys-net 
xenconsole: Could not read tty from store: No such file or directory

[ctor@dom0 ~]$ rpm -qf `which xl`
xen-runtime-4.8.4-2.fc25.x86_64

Примечание :Выйдите из консоли, нажавCtrl+]

sys-netимеет режим виртуализации, установленный на HVM. Для всех остальных виртуальных машин установлено значение default (PVH). Это, кажется, главное отличие.

1
06.12.2020, 07:34
1 ответ

Btrfs использует копирование при записи(CoW ), поэтому существующие данные не перезаписываются при изменении, а копируются в новое место, и копия изменяется. Таким образом, журнал не нужен, потому что в случае сбоя питания или сбоя системы у вас все еще есть исходные данные. Btrfs также использует контрольные суммы для обнаружения случайных повреждений данных, поэтому он знает, являются ли данные и метаданные действительными или поврежденными.

Более подробная информация о копировании при записи доступна здесь или более общее описание в википедии .

3
18.03.2021, 22:44

Теги

Похожие вопросы