Poprzedni temat | Spis treści | Następny temat |
W linuxie niedozwolona jest sytuacja aby z jednego pliku file_system odpalonych było wiele umli. Doprowadziłoby to to dużych problemów jeśli umle zaczęły by zapisywać. Z tego powodu w celu współdzielenia systemu plików pomiędzy kilkoma maszynami wirtulanymi wykorzystywana jest strategia COW- kopiowanie przy zapisie.
Mechanizm COW jest zawarty w sterowniku urządzenia blokowego. Mechanizm COW pozwala na "warstwowy" dostęp do danych.
Sterownik COW działa w ten sposób, że na urządzenie blokowe z dostępem tylko do odczytu nakładana jest prywatna warstwa. Do warstwy tej można zapisywać. Teraz kiedy maszyna wirtulana chce odczytac coś co nie było modyfikowane odczytuje to z warstwy współdzielonej, jeśl było modyfikowane z warstwy prywatnej. Kiedy maszyna wirtualna chce coś zapisać zapisuje to tylko do warsty prywatnej.
Warstwa prywatna realizowna jest przez pliki COW, to właśnie do plików COW zapisują urządzenia.
Tworzenie pliku COW:
[piotr@mandrake host] ubd0= <nowy plik COW>, <plik współdzielony>
gdzie nowy plik COW to np. root_fs_cow , a plik dzielony to np. root_fs_slack8.1
Od tej pory w nagłówku pliku COW zapisana jest informacja o pliku z obrazem systemu plików i urządzenie ubd0 będzie pisać do pliku COW. Skoro w nagłówku pliku COW jest już zapisana informacaja o orginalnym pliku to możemy uruchamiać maszynę wirtulaną w kolejnych sesjach już przez polecenie:
[piotr@mandrake host] ubd0= <nowy plik COW>
uml_moo
Kiedy będziemy chcieli scalić zmieniony plik COW z plikiem współdzielonym dokonujemy tego za pomocą polecenia:
[piotr@mandrake host] uml_moo <plik COW> <nowy plik dzielony>
uml_mkcow
Narzędzie uml_mkcow służy do tworzenia plików COW bez odpalania wirtualnej maszyny.
[piotr@mandrake host] uml_mkcow <plik COW> <plik dzielony>
uml_mkcow można też odpalić z opcją -f, która umożliwia nadpisanie starego pliku COW (powoduje to anulowanie wszystkichh zmian zapisanych przez urządzenie w starym plikiem COW):
[piotr@mandrake host] uml_mkcow -f <plik COW> <plik dzielony>
Zeby moc korzystać z poleceń uml_mkcow i uml_moo trzeba zainstalować pakiet UML Utilities .
© 2004 Mateusz Chrzęst, Piotr Krawczyk, Adam Kruszewski. |