2014-11-22 16 views
5

suggested strategy do zarządzania i tworzenia kopii zapasowych danych w dokowanym wygląda mniej więcej tak:"Oficjalna" strategia tworzenia kopii zapasowych w doku - co z konsekwencją?

docker run --name mysqldata -v /var/lib/mysql busybox true 
docker run --name mysql --volumes-from mysqldata mysql 
docker run --volumes-from mysqldata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /var/lib/mysql 

Jednak, kiedy zapasowe pojemniki do jazdy w ten sposób, że nie będzie spójne tworzenie kopii zapasowych, ja? Jestem świadomy narzędzi takich jak mysqldump, ale co jeśli potrzebuję wykonać kopię zapasową, na przykład folderu, do którego pliki są ciągle dodawane i usuwane?

Odpowiedz

1

Podstawowy problem, przed którym stoisz, tj. Tworzenie kopii zapasowej zmieniających się plików jest niezależny od okna dokowanego. Użyj narzędzia, takiego jak rsnapshot lub dirvish, aby utworzyć kopie zapasowe w woluminie, a następnie użyj metody wspomnianej powyżej, aby przenieść te kopie zapasowe w bezpieczniejsze miejsce, takie jak Amazon s3 lub lodowiec, zgodnie z wymaganiami dotyczącymi niezawodności.

Niezależnie od tego, czy montujesz wolumeny z innego kontenera, czy z hosta vm za pomocą przełącznika -v, zmiany w plikach są odzwierciedlane we wszystkich kontenerach (lub hostach wirtualnych) w mniej więcej czasie rzeczywistym. (Występuje pewne opóźnienie z powodu AUFS, którego docker używa na górze hosta, ale nie jest zbyt duży). Jeśli pojemnik kopii zapasowej działał wiecznie, mógł nadal wykonywać kopie zapasowe, a pliki zawsze odzwierciedlały najnowsze pliki widziane przez kontener mysql.

Edytuj: Dla przejrzystości.

+0

_ "tworzenie kopii zapasowych na wolumin" _ Ale te kopie zapasowe nie będą wtedy spójne, prawda? Co mam na myśli: zasadniczo nie można robić spójnych kopii zapasowych wewnątrz kontenera. Musisz wykonać migawkę (lvm/btrfs)/var/lib/docker/volume/XYZ i wykonać kopię zapasową na hoście. – S1lentSt0rm

+0

Objętości są udostępniane między uruchomionymi kontenerami w czasie rzeczywistym (ish). Możesz nawet zamontować je z systemu plików hosta. przy użyciu -v/host_fs/location:/container_fs/location. Wszystkie zmiany w plikach w woluminie powinny być dostępne dla wszystkich kontenerów i hosta w tym samym czasie. –

+1

Jestem tego świadomy. Problem polega na tym, że potrzebuję _konsystentowych kopii zapasowych: migawka stanu systemu plików _atomowo_ w pewnym momencie i tworzenie kopii zapasowych danych z tej tylko do odczytu migawki. Nie wiem jak to zrobić w kontenerze, ponieważ do tego celu potrzebuję użyć narzędzi lvm lub btrfs. Dzięki opisanemu powyżej podejściu, nikt nie zapobiega zmianie systemu plików podczas wykonywania kopii zapasowej. – S1lentSt0rm

Powiązane problemy