Open-E JovianDSS Off-Site Data Protection Service (ODPS) konfigurieren

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

Ein besonderes Feature von Open-E JovianDSS ist der Off-Site Data Protection Service (ODPS). Zum Einsatz dieser Funktion zur Datenreplizierung sind zwei JovianDSS Nodes erforderlich. In diesem Artikel zeigen wir anhand eines Beispiels mit 2 ESXi-virtualisierten JovianDSS Nodes, wie Sie via Windows oder Linux-basiertem Client auf das Command Line Interface des JovianDSS zugreifen und ODPS korrekt konfigurieren.

Hier geht es zu unseren Open-E Appliances im Onlineshop von Thomas-Krenn

Verbindung zum Command Line Interface

Um via PuTTY und dessen plink.exe tool oder auf Linux-basierten Systemen via Terminal eine Verbindung zum CLI des JovianDSS herstellen zu können muss CLI access, wie im folgenden Screenshot abgebildet, aktiviert werden. Navigieren Sie im Webmenü des JovianDSS zu System Settings, anschließend zum Tab Administration und scrollen Sie zum Punkt CLI access.

Aktivieren Sie Use CLI access und vergeben Sie ein geeignetes Passwort. Anschließend kann der neue Key generiert und auf Ihren Computer heruntergeladen werden.

Verbindung anhand eines Windows Computers

Die Verbindung von einem Windows-Computer gelingt mit der beliebten PuTTY-Suite und dessen Kommandozeilen-Interface plink.exe. Open-E hat dazu einen detaillierten Leitfaden als PDF veröffentlicht, ab Seite 21 des PDFs Jump-Start Open-E JovianDSS ist die Konfiguration von PuTTY ausführlich und verständlich anhand Screenshots dargestellt.[1]

Verbindung anhand eines Linux-basierten Computers

Nachfolgender Abschnitt zeigt, wie Sie eine Verbindung zum JovianDSS, via Terminal, von Ihrem Linux-basierten Betriebssystem, anhand des Beispiels Ubuntu 14.04, vornehmen.[2]

  1. Laden Sie den RSA-Key auf Ihr lokales System herunter
  2. Legen Sie den Key z.B. im Verzeichnis .ssh ab
  3. Verändern Sie aus Sicherheitsgründen die Zugriffsrechte auf den Key, ansonsten wird beim Verbindungsversuch eine Warnung ausgegeben und ein Passwort abgefragt: $ chmod 600 <Key-des-JovianDSS-Nodes>.key
  4. Verbindung zur CLI des JovianDSS herstellen: $ ssh -2 -p 22223 -i .ssh/<Key-des-JovianDSS-Nodes>.key -l cli <IP-des-JovianDSS-Nodes>

Kommandoübersicht

Die Konfiguration vieler Features kann im Web-GUI des JovianDSS vorgenommen werden. Jedoch ist auch eine Konfiguration per CLI möglich.

Schemas der Kommandos unter Windows und Linux

Die Verbindung über einen Windows Client gelingt unterschiedlich zu einem Linux-basierten Client. Nachfolgende Schemas zeigen den Aufbau der Kommandos der jeweiligen Betriebssysteme.

  • Windows: plink.exe -i <Pfad-zur-ppk>\<Key-des-JovianDSS-Nodes>.ppk -P 22223 -l <IP-des-JovianDSS-Nodes> <Kommando>
  • Linux: $ ssh -2 -p 22223 -i <Keyfile> -l <CLI-Username> <IP-des-JovianDSS-Nodes> <Kommando>

Auflisten aller Kommandos

Sie können eine Übersicht sämtlicher Kommandos durch einen Aufruf ohne Kommando am Ende erlagen.

  • Windows: plink.exe -i <Pfad-zur-ppk>\<Key-des-JovianDSS-Nodes>.ppk -P 22223 -l <IP-des-JovianDSS-Nodes>
  • Linux: $ ssh -i .ssh/<Key-des-JovianDSS-Nodes>.key -2 -p 22223 -l cli <IP-des-JovianDSS-Nodes>
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

Das Feature ODPS erstellt automatisch rotierende Snapshots eines Datasets oder Zvols anhand eines Retention-Plans. Optional kann eine asynchrone Replizierung der Snapshot Deltas zu einem lokalen oder auch entfernten Standort (co-location) konfiguriert werden. Das ODPS Feature ermöglicht somit eine solide und performante Strategie für Backups, Archivierungen und Disaster Recovery zu erstellen.[3]

Konfigurationshinweis

Die nachfolgenden Abschnitte erläutern die Konfiguration des ODPS Features. Es kann lokal zwischen zwei Pools eines Nodes angelegt werden, oder remote auf einen zweiten Node eine Replizierung der Daten vornehmen. Die folgende Beispielkonfiguration basiert auf zwei Nodes von JovianDSS als virtuelle Maschine auf einem ESXi Host. Die Konfiguration beider Nodes erfolgte ebenso analog dem identischen Schema, die beiden Instanzen unterscheiden sich nur von den konfigurierten IP-Adressen.

Kommandoübersicht

Die Konfiguration des ODPS Features erfolgt derzeit noch via CLI, z.B. mithilfe des oben erwähnten plink Tools der PuTTY-Suite auf der Windows Eingabeaufforderung oder auch via Terminal bei Linux-basierten Betriebssystemen. In zukünftigen Versionen ist laut Entwickler geplant eine grafische Konfiguration zu integrieren.[4] Nachfolgend wird die Konfiguration mittels eines Linux-basierten Betriebssystems, anhand eines konkreten Beispiels, aufgezeigt. Für die Konfiguration mithilfe eines Windows Betriebssystems wird das Kommando ebenso angegeben.

Aufzeigen aller ODPS Funktionen

Mit den Parametern odps oder odps help können alle ODPS-Kommandos auf der Standardausgabe ausgegeben werden.

  • 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.

Replikation einrichten

Nach der grundlegenden Konfiguration wird nun aufgezeigt, wie eine lokale Replikation sowie eine entfernte Replikationen angelegt wird.

Lokale Replikation zwischen zwei lokalen Pools

Eine lokale Replikation zwischen zwei lokalen Pools, wie Pool-0 und Pool-1 in diesem Beispiel, ist mit folgendem Kommando einzurichten. In diesem Fall wurden vorab im Webinterface des JovianDSS zwei lokale Storage Pools angelegt.

odps create-task source=Pool-0/dataset destination=<IP-des-JovianDSS>:Pool-1/dataset

Entfernte Replikation

Eine entfernte Replikation auf einen zweiten Node erfordert nur wenige Konfigurationsschritte. Der zweite Node wird hinzugefügt und der Backuptask eingeplant. Beide Nodes enthalten jeweils einen Storage Pool, auf beiden Seiten Pool-0 benannt. Der Backup-Node wird zuerst am ersten Node hinzugefügt und anschließend der Backup-Task erstellt.

Backup Node hinzufügen Der entfernte Backup-Node wird mit dem nachfolgenden Kommando zum lokalen Node angehängt. Geben Sie beim nachfolgenden Aufruf die IP-Adresse des Backup-Nodes und dessen Passwort an.

$ 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 erstellen

Da nun der JovianDSS Backup-Node hinzugefügt wurde, kann jetzt eine Backup-Aufgabe mit entfernter Replizierung auf diesen Backup-Node erstellt werden. Geben Sie hier das Quellverzeichnis am lokalen Node und das Zielverzeichnis des entfernten Nodes an.

$ 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.

Remote Backup-Task mit Bufferung der Datenübertragung erstellen

Sie können die Übertragung mit den Parametern mbuffer bzw. mbuffer buffersize=<Größe in MB> puffern lassen.

$ 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=<Größe in MB>}

Status der Replikationsaufgaben

Nachfolgende Ausgabe zeigt den Status in einer detaillierten Ausgabe an. Hier sieht man, dass z.B. die Snapshots zum entfernten Node gesendet werden und Aufräumarbeiten stattgefunden haben. Falls Fehler auftreten, können diese mithilfe des Kommandos odps status ebenso gut debuggt werden.

$ 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)

Bestehende Tasks auflisten

Eine Liste bestehender Tasks wird per list-tasks Parameter ausgegeben. Der zuvor erstellte Backup-Task wird, inklusive der Eigenschaften, übersichtlich ausgegeben.

$ 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


Tasks und Replikation entfernen

Tasks und Replikationen können über die CLI auch wieder entfernt werden. Wie dies gelingt, zeigen nachfolgend zwei Beispiele.

Task entfernen

Einen Task, z.B. einen Backup-Task, kann man mit delete-task <Taskname> entfernen.

$ 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.

Backup Node entfernen

Der Backup Node kann mit dem Parameter detach-backup-node und Angabe der IP-Adresse des Nodes entfernt werden.

$ 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.

Einzelnachweise


Foto Thomas Niedermeier.jpg

Autor: Thomas Niedermeier

Thomas Niedermeier arbeitet im Product Management Team von Thomas-Krenn. Er absolvierte an der Hochschule Deggendorf sein Studium zum Bachelor Wirtschaftsinformatik. Seit 2013 ist Thomas bei Thomas-Krenn beschäftigt und kümmert sich unter anderem um OPNsense Firewalls, das Thomas-Krenn-Wiki und Firmware Sicherheitsupdates.

Icon-Twitter.png 

Das könnte Sie auch interessieren

Open-E JovianDSS als virtuelle Maschine auf einem ESXi Host
Open-E JovianDSS Informationen und Konfiguration
Open-E JovianDSS iSCSI Tuning bei VMware Systemen