Kopirovanie linuxoveho filesystemu, ktory program je najlepsi?

Alexandr Malusek malusek na sysel.ujf.cas.cz
Pátek Srpen 8 18:28:17 CEST 1997


P.Ferschmann na icl.cz (Petr Ferschmann) writes:

> > >   Mel bych dotaz na diry.
> > > Je to vlastnost fs ext2 nebo je to jadra. Protoze na VxFS (JFS) ( na
> > > HP-UX,   DRS NX)  a UFS tato vlastnost neexistuje.

Podle me je to vlastnost rutin pro praci s danym typem filesystemu:
Moderni Unixy implementuji nejakou variantu vfs (virtual file system).
V terminologii C++ by se to dalo popsat tak, ze funkce pro praci s
filesystemem (open, read, write, close, ...) jsou virtualni funkce,
pricemz kazdy z filesystemu (ufs, ext2fs) si tyto virtualni funkce
definuje podle sveho. Jadro vyvola read(), a pokud se cte z ufs
filesystemu, pak se provede ufs_read(). Vlastni implementace der je
pak zalezitosti funkci ufs_read() a ufs_write(). Napr. jsou-li datove
bloky cislovany od 1, pak diru muzeme definovat tak, ze odpovidajici
ukazatel na datovy blok obsahuje cislo 0. ufs_read() je pak treba
naprogramovat tak, aby pri cteni z (neexistujiciho) datoveho bloku 0
vracela nuly. Naopak pri zapisu dat za konec souboru funkce
ufs_write() zajisti, ze ukazatele obsahujici cila datovych bloku diry
se nastavi na 0 ...

Pokud vim, tak diry implementuje ext2fs, UFS pod Solarisem, HSF pod
HP-UX 9 a urcite i rada dalsich FS. Nekde jsem cetl, ze AFS diry
neimplementuje. Je to distribuovany filesystem s lokalnim kesovanim,
takze asi meli duvody, proc to neimplementovali.

> > Zcela evidentne je zalezitost driveru ext2fs, protoze treba na FATce
> > se nic takoveho nedeje, i kdyz s ni pracuje Linux.

Ano. Ono by pak z tech der neslo cist pod MS-DOSem. Kdyz je neco
neefektivni, tak to vetsinou z duvodu zpetne kompatibility zustane
neefektivni naporad :-) 

> Me by hlavne zajimalo k cemu presne ty diry slouzi a jak to funguje.

Pokud aplikace pouzivaji pro cteni funkci read(), pak jsou pro ne diry
"neviditelne". Proto napr. cp, tar i cpio diry nezachovavaji (ale
mohou je vytvaret tak, ze bloky s nulami nezapisi, ale pomoci lseeku
je preskoci). Asi by se tyto prikazy daly naprogramovat tak, ze pokud
je spousti root, pak by se obracely primo na /dev/hd??, proto jsem si
to radsi pod Linuxem overil.

Dulezite pro administratora je, aby o dirach vedel a podle toho
zalohoval. Jinak se mu muze stat, ze pri obnove se mu data z pasky do
filesystemu nevejdou.

-- 
Alexandr Malusek (malusek na ujf.cas.cz)
UJF AV CR


Další informace o konferenci Linux