Portál AbcLinuxu, 12. května 2025 18:32
Ahoj. Mám 2 servery, na obou mi jede CentOS s KVM na každém běží několik virtuálních strojů. Každý server má vlastní diskové pole s linuxovým software raidem 1, nad tím je LVM a každý virtuální host má k dispozici nějaký LVM oddíl. Problém mi ale dělá mismatch_cnt u raidu, které způsobuje např. i to, že lvm snapshoty oddílů s virtuálními stroji jsou nekonzistentí, protože se pokaždé čte z jiného disku a na nich nejsou stejná data (viz. mismatch_cnt). Mám si s tím dělat starosti?
Někde jsem objevil, že tento problém se může týkat každé md raid 1 konfigurace (nemusí to být vázané na KVM hosty), protože:
1/ OS nařídí DMA řadiči přesun dat z RAM na disky
2/ během přesunu dat (na jednom disku dokončeno, na druhém ještě ne) se změní data v RAM
Prý by to neměl být pro souborové systémy problém, protože data by měla být označena dirty a tím pádem se číst z RAM. Nicméně jak je to u virtualizace? Pozná nějak filesystém ve virtualizovaném stroji to, co se děje v hostiteli? Vykomunikuje to nějak jádro hostitele s jádrem virtuálního stroje? Vysvětlete mi prosím někdo, kdo tomu rozumíte, jak to vlastně funguje. Možná se ptám jako pitomec, ale dost mě takové chování raidu zneklidňuje. Proč se to řeší až na úrovni souborového systém (dirty) a ne na úrovni blokových zařízení, aby mi třeba dd vrátilo vždy stejná data?
echo "repair" >/sys/block/md*/md/sync_action
echo "check" > /sys/block/md*/md/sync_action
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.