Konfiguracja Off-Site Data Protection Service (ODPS) w systemie JovianDSS firmy Open-E
Szczególną funkcją w oprogramowaniu Open-E JovianDSS jest usługa Off-Site Data Protection Service (ODPS). Do korzystania z tej funkcji replikacji danych wymagane są dwa węzły JovianDSS. W tym artykule pokażemy, na przykładzie dwóch zwirtualizowanych w ESXi węzłów JovianDSS, jak można dostać się do interfejsu wiersza poleceń JovianDSS z klienta opartego na systemie Windows lub Linux i poprawnie skonfigurować ODPS.
Połączenie z interfejsem wiersza poleceń
Aby połączyć się z CLI systemu JovianDSS za pomocą PuTTY i jego narzędzia plink.exe lub z systemu opartego na Linuksie i terminala należy aktywować CLI access, tak jak jest to przedstawione na poniższym zrzucie.
W menu webowym systemu JovianDSS należy kolejno przejść do System Settings, Administration i punktu CLI access.
Połączenie z komputera z systemem Windows
Połączenie z komputera z systemem Windows może zostać zrealizowane za pomocą popularnego "PuTTY" i jego interfejsu wiersza poleceń "plink.exe". Open-E opublikowało szczegółowy przewodnik w formacie PDF, od strony 21 dokumentu "Jump-Start Open-E JovianDSS" jest szczegółowo przedstawiona konfiguracja PuTTY, za pomocą zrzutów ekranu.[1]
Połączenie z komputerem działającym pod Linuksem
Poniżej jest przedstawione, na przykładzie Ubuntu 14.04, jak można się połączyć z systemem JovianDSS z poziomu terminala w Linuksie.[2]
- Pobierz klucz RSA na lokalny system
- Umieść klucz np. w katalogu .ssh
- Ze względów bezpieczeństwa należy zmienić prawa dostępu do klucza, w przeciwnym razie podczas próby połączenia zostanie wyświetlone ostrzeżenie i zażądane hasło:
$ chmod 600 <klucz-węzła-JovianDSS>.key
- Połączenie z CLI JovianDSS:
$ ssh -2 -p 22223 -i .ssh/<klucz-węzła-JovianDSS>.key -l cli <IP-węzła-JovianDSS>
Przegląd poleceń
Konfiguracja wielu funkcji może zostać przeprowadzona w interfejsie webowym systemu JovianDSS, jak i również z CLI.
Schemat komend w systemie Windows i Linux
Połączenie z klienta Windows różni się od połączenia z klienta opartego na Linuksie. Poniższe schematy przedstawiają strukturę komend w poszczególnych systemach operacyjnych.
- Windows:
plink.exe -i <ścieżka-do-ppk>\<klucz-des-JovianDSS-Nodes>.ppk -P 22223 -l <IP-węzła-JovianDSS> <komenda>
- Linux:
$ ssh -2 -p 22223 -i <Keyfile> -l <CLI-Username> <IP-węzła-JovianDSS> <komenda>
Lista dostepnych komend
Przegląd dostępnych komend może zostać wyświetlona poprzez wprowadzenie poniższych poleceń.
- Windows:
plink.exe -i <ścieżka-do-ppk>\<klucz-węzła-JovianDSS>.ppk -P 22223 -l <IP-węzła-JovianDSS>
- Linux:
$ ssh -i .ssh/<klucz-węzła-JovianDSS>.key -2 -p 22223 -l cli <IP-węzła-JovianDSS>
Using username "cli". Usage: cli_adapter [options] Options: -h, --help show this help message and exit -c COMMAND CLI API Command to execute. Available commands: attach_volume_to_iscsi_target check_mk_agent create_clone_for_given_snapshot create_iscsi_target create_pool create_snapshot create_volume delete_clone delete_iscsi_target delete_pool delete_snapshot delete_volume detach_volume_from_iscsi_target get_clones_for_given_snapshot get_iscsi_targets_for_given_pool get_pools get_snapshots_for_given_volume get_volumes_assigned_to_iscsi_target get_volumes_for_given_pool help node_bind node_unbind odps reboot shutdown Run: command_name --help to see help for selected command
Off-Site Data Protection Service
Funkcja ODPS automatycznie tworzy rotujące migawki zbioru danych lub Zvol w oparciu o plan retencji. Opcjonalnie można skonfigurować asynchroniczną replikację migawek do lokalizacji lokalnej lub zdalnej (co-location). Funkcja ODPS umożliwia zatem tworzenie solidnych i wydajnych strategii tworzenia kopii zapasowych, archiwizacji i przywracania danych po awarii.[3]
Podpowiedź konfiguracyjna
Poniższe punkty opisują konfigurację funkcji ODPS, która jest skonfigurowana lokalnie pomiędzy dwoma pulami węzła lub replikuje dane do drugiego zdalnego węzła. Poniższa przykładowa konfiguracja opiera się na dwóch węzłach JovianDSS działających jako maszyna wirtualna na hoscie ESXi. Konfiguracja obu węzłów przebiega prawie identycznie, obie instancje różnią się jedynie skonfigurowanymi adresami IP.
Przegląd poleceń
Funkcja ODPS może nadal zostać skonfigurowana za pomocą CLI, np. za pomocą wspomnianego powyżej narzędzia "plink" w "PuTTY" z wiersza poleceń systemu Windows lub za pośrednictwem terminala w przypadku systemów operacyjnych opartych na systemie Linux. Według autorów projektu, w przyszłych wersjach jest planowany konfigurator graficzny.[4] Konfiguracja z systemu operacyjnego opartego na Linuksie jest pokazana poniżej na konkretnym przykładzie. Polecenia konfiguracji z systemu operacyjnego Windows są również poniżej podane.
Wszystkie funkcje ODPS
Za pomocą parametrów 'odps' lub 'odps help' mogą zostać wyświetlone wszystkie polecenia ODPS.
- Linux
$ ssh -i .ssh/node-7d7269fb.key -2 -p 22223 -l cli 10.1.102.230 {odps|odps help}
- Windows
plink.exe -i Downloads\node-7d7269fb.ppk -P 22223 -l 10.1.102.230 {odps|odps help}
Missing option. Off-Site Data Protection Service (odps) AVAILABLE COMMANDS: odps attach-backup-node - Attaches a new backup node. node-password - Backup node password. detach-backup-node - Detaches an already added backup node. list-backup-nodes - Lists already added backup nodes. create-task - Creates a task. source - Defines a source dataset or zvol. destination - Defines a destination dataset or zvol. plan - Defines a custom retention plan. If it is not set, the default plan is set to 1hour_every_10min, 3day_every_1hour, 1month_every_1day. mbuffer - Enables an mbuffer for data transport. mbuffersize=number{b|k|M|G} - Sets the buffer size. It supports the following units: b,k,M,G. If not set, the buffer size defaults to 1GB. enable-task - Enables a task. disable-task - Disables a task. delete-task - Deletes a task. list-tasks - Lists already created tasks. set-task-defaults - Sets default parameters for tasks. get-task-defaults - Gets default parameters for tasks. restart-tasks - Restarts all tasks. status - Status of the service. set - Lists current settings: list-backup-nodes, get-task-defaults, list-tasks. debug - Simulated run of the task. json - Displays in JSON format. help - Displays help. ESX COMMANDS SUB-SET: esx register - Registers VMware vCenter or vSphere server. user - vCenter or vSphere administration user. password - vCenter or vSphere user password. esx unregister - Unregisters an already registered vCenter or vSphere server. esx list - Lists already registered vCenter or vSphere servers. esx query - Lists VMs details on registered vCenter or vSphere servers. esx attach-datastore - Attaches an ESX datastore to a given task. datastore - Datastore to be attached (IP_addr/datacenter_name/datastore_name). Note: Consistent snapshots are taken for all VMs in attached datastores except those with annotation: ##auto-snap-skip## esx detach-datastore - Detaches an ESX datastore for a given task. esx list-datastores - Lists datastores associated with a given task. esx set - Lists current ESX settings: esx query, esx list, esx list-datastores. EXAMPLES: 1. Attach new backup node: odps attach-backup-node 192.168.0.221 node-password admin 2. Detach an already added backup node: odps detach-backup-node 192.168.0.221 3. List already added backup nodes: odps list-backup-nodes 4.1 Create a new task as local snapshots only, no replication at all. odps create-task source=Pool-0/dataset odps create-task source=Pool-0/zvol 4.2 Create a new task as local(192.168.0.220) backup from Pool-0 to Pool-1. odps create-task source=Pool-0/dataset destination=192.168.0.220:Pool-1/dataset odps create-task source=Pool-0/dataset plan=1h_every_1min,30d_every_4h destination=192.168.0.220:Pool-1/dataset odps create-task source=Pool-0/dataset plan=1h_every_1min,30d_every_4h destination=192.168.0.220:Pool-1/dataset plan=5h_every_10min Note: All missing options will be taken from task-defaults which can be set with set-task-defaults command. 4.3 Create a new task as a backup to the remote host 192.168.0.221 using mbuffer for data transport. odps create-task source=Pool-0/dataset destination=192.168.0.221:Pool-0/dataset mbuffer odps create-task source=Pool-0/dataset plan=1h_every_1min,30d_every_4h destination=192.168.0.221:Pool-0/dataset mbuffer mbuffersize=2G odps create-task source=Pool-0/dataset plan=1h_every_1min,30d_every_4h destination=192.168.0.221:Pool-0/dataset plan=5h_every_1min,1w_every_4h mbuffer mbuffersize=500M Note: All missing options will be taken from task-defaults which can be set with set-task-defaults command. 4.4 Create a new task as a backup to two remote hosts: 192.168.0.221 and 192.168.0.222. odps create-task source=Pool-0/dataset destination=192.168.0.221:Pool-0/dataset destination=192.168.0.222:Pool-1/dataset odps create-task source=Pool-0/dataset plan=1h_every_1min,30d_every_4h destination=192.168.0.221:Pool-0/dataset plan=5h_every_1min,1w_every_4h destination=192.168.0.222:Pool-0/dataset Note: All missing options will be taken from task-defaults which can be set with set-task-defaults command. 5 Enable a task: odps enable-task Pool-0/dataset 6. Disable a task: odps disable-task Pool-0/dataset 7. Delete a task: odps delete-task Pool-0/dataset 8. List already created tasks: odps list-tasks 9. Restart all tasks: odps restart-tasks 10. Get task defaults: odps get-task-defaults 11. Set default plan for all tasks: odps set-task-defaults plan 5h_every_10min 12. Status of the service. Last entries from logs: odps status 13. Simulated run of a task (dry-run): odps debug Pool-0/dataset ESX EXAMPLES: 1. Register a VMware vCenter or vSphere server: odps esx register 192.168.0.10 user user_name password user_password 2. Unregister an already registered vCenter or vSphere server: odps esx unregister 192.168.0.10 3. Lists already registered vCenter or vSphere servers: odps esx list 4. Lists VMs details on registered vCenter or vSphere servers: odps esx query 192.168.0.10 5. Attach an ESX datastore for a given task: odps esx attach-datastore Pool-0/dataset datastore 192.168.0.10/datacenter_name/datastore_name 6. Detach ESX datastore for a given task: odps esx detach-datastore Pool-0/dataset 7. Lists datastores associated with a given task: odps esx list-datastores Pool-0/dataset RETENTION PLANS: The ODPS plan consists of a series of retention periods to interval associations: "retention_every_interval,retention_every_interval,retention_every_interval,...". Both intervals and retention periods use standard units of time or multiples of them, with full names or a shortcut according to the following list: second|sec|s, minute|min, hour|h, day|d, week|w, month|mon|m, year|y.
Konfiguracja replikacji
Po konfiguracji podstawowej zostaje rozpoczęta konfiguracja lokalnej i zdalnej replikacji.
Lokalna replikacja między dwoma lokalnymi pulami
Lokalna replikacja między dwoma lokalnymi pulami, Pool-0 i Pool-1 w tym przykładzie, zostaje przeprowadzona następującym poleceniem. Dla tego przykładu zostały wcześniej utworzone w interfejsie webowym JovianDSS dwie lokalne pule pamięci masowe.
odps create-task source=Pool-0/dataset destination=<IP-systemu-JovianDSS>:Pool-1/dataset
Zdalna replikacja
Zdalna replikacja na drugim węźle wymaga tylko kilku kroków konfiguracyjnych. Dodany zostaje drugi węzeł i zaplanowany backup task. Oba węzły zawierają, po obu stronach, pulę pamięci o nazwie "Pool-0". Węzeł kopi zapasowej zostaje dodany na pierwszym węźle i utworzony backup task.
Węzeł backupu Zdalny węzeł kopii zapasowej jest dodawany na węźle lokalnym za pomocą poniższego polecenia, które zawiera adres IP węzła kopii zapasowej i jego hasło.
$ ssh -i .ssh/node-7d7269fb.key -2 -p 22223 -l cli 10.1.102.230 odps attach-backup-node 10.1.102.234 node-password admin Backup node has been attached.
Remote backup task
Po dodaniu węzła kopii zapasowej JovianDSS można utworzyć zadanie tworzenia kopii zapasowej ze zdalną replikacją do tego węzła. Należy wprowadzić katalog źródłowy na węźle lokalnym i katalog docelowy na węźle zdalnym.
$ ssh -i .ssh/node-7d7269fb.key -2 -p 22223 -l cli 10.1.102.230 odps create-task source=Pool-0/test destination=10.1.102.234:Pool-0/test-backup Task has been successfully created.
Tworzenie zdalnych kopii zapasowych z buforami transferu danych
Transmisję można zbuforować za pomocą parametrów mbuffer lub mbuffer buffersize=<wielkość w MB>.
$ ssh -i .ssh/node-7d7269fb.key -2 -p 22223 -l cli 10.1.102.230 odps create-task source=Pool-0/test destination=10.1.102.234:Pool-0/test-backup {mbuffer|mbuffer mbuffersize=<wielkość w MB>}
Status zadań replikacji
Poniższe wyjściowe dane przedstawiają szczegółowy status, jest np. widoczne, że migawki są przesyłane na zdalny węzeł. W przypadku wystąpienia błędów, polecenie odps status pozwala na debugowanie błędu.
$ ssh -i .ssh/node-7d7269fb.key -2 -p 22223 -l cli 10.1.102.230 odps status Service running: Yes Last service logs: [Thu Nov 10 16:30:13 2016] [info] running post snapshot command on Pool-0/test [Thu Nov 10 16:30:15 2016] [info] running post snapshot command on Pool-0/test [Thu Nov 10 16:30:17 2016] [info] running post snapshot command on Pool-0/test [Thu Nov 10 16:30:19 2016] [info] running post snapshot command on Pool-0/test [Thu Nov 10 16:30:21 2016] [info] running post snapshot command on Pool-0/test [Thu Nov 10 16:30:24 2016] [info] running post snapshot command on Pool-0/test [Thu Nov 10 16:30:26 2016] [info] running post snapshot command on Pool-0/test [Thu Nov 10 16:30:27 2016] [info] done with backupset Pool-0/test in 25 seconds [Thu Nov 10 16:30:27 2016] [debug] send/receive worker for Pool-0/test done (9540) [Thu Nov 10 16:40:00 2016] [debug] snapshot worker for Pool-0/test spawned (12126) [Thu Nov 10 16:40:00 2016] [info] creating snapshot on Pool-0/test [Thu Nov 10 16:40:00 2016] [info] running post snapshot command on Pool-0/test [Thu Nov 10 16:40:02 2016] [debug] snapshot worker for Pool-0/test done (12126) [Thu Nov 10 16:40:02 2016] [debug] send/receive worker for Pool-0/test spawned (12269) [Thu Nov 10 16:40:02 2016] [info] starting work on backupSet Pool-0/test [Thu Nov 10 16:40:02 2016] [debug] sending snapshots from Pool-0/test to odp@10.1.102.234:Pool-0/test-backup [Thu Nov 10 16:40:06 2016] [debug] cleaning up snapshots on odp@10.1.102.234:Pool-0/test-backup [Thu Nov 10 16:40:06 2016] [debug] cleaning up snapshots on Pool-0/test [Thu Nov 10 16:40:06 2016] [info] done with backupset Pool-0/test in 4 seconds [Thu Nov 10 16:40:06 2016] [debug] send/receive worker for Pool-0/test done (12269)
Wykaz istniejących zadań
Za pomocą parametru list-tasks można wyświetlić listę istniejących zadań. Uprzednio utworzone zadanie tworzenia kopii zapasowej, wraz z jego właściwościami, jest przejrzyście przedstawione.
$ ssh -i .ssh/node-7d7269fb.key -2 -p 22223 -l cli 10.1.102.230 odps list-tasks Source: Pool-0/test Enabled: yes Retention plan: 1hour_every_10minutes,3days_every_1hour,1month_every_1day Destination: odp@10.1.102.234:Pool-0/test-backup Retention plan: 1hour_every_10minutes,3days_every_1hour,1month_every_1day Mbuffer: on Mbuffer size: 1G
Usuwanie zadań i replikacji
Zadania i replikacje mogą zostać usunięte z CLI. Poniższe dwa przykłady pokazują jak może zostać to zrobione.
Usuwanie zadania
Zadania, np. zadanie tworzenia kopii zapasowej, można usunąć za pomocą delete-task <nazwa_zadania>
$ ssh -i .ssh/node-7d7269fb.key -2 -p 22223 -l cli 10.1.102.230 odps delete-task Pool-0/test Task has been successfully deleted.
Odłączenie węzła backupu
Węzeł backupu może zostać odłączony poprzez wprowadzenie parametru detach-backup-node i adresu IP węzła.
$ ssh -i .ssh/node-7d7269fb.key -2 -p 22223 -l cli 10.1.102.230 odps detach-backup-node 10.1.102.234 Backup node has been detached.
Odnośniki
- ↑ Jump-Start Open-E JovianDSS (open-e.com)
- ↑ Remote console access (wiki.open-e.com)
- ↑ Open-E JovianDSS Off-site Data Protection (open-e.de)
- ↑ Disaster Recovery with Open-E JovianDSS Off-site Data Protection Service (open-e.com)
Autor: Thomas Niedermeier