08.存儲Cinder→5.場景學習→08.Backup Volume→1.概述與配置

  1. Backup 是將 volume 備份到別的地方(備份設備),未來能夠經過 restore 操做恢復。
  2.  backup 功能好像與 snapshot 很類似,均可以保存 volume 的當前狀態,以備之後恢復。但兩者在用途和實現上仍是有區別的,具體表如今:
    1. Snapshot 依賴於源 volume,不能獨立存在;而 backup 不依賴源 volume,即使源 volume 不存在了,也能夠 restore。
      1. Snapshot 與源 volume 一般存放在一塊兒,都由同一個 volume provider 管理;而 backup 存放在獨立的備份設備中,有本身的備份方案和實現,與 volume provider 沒有關係。
    2. 所以 backup 具備容災功能;而 snapshot 則提供 volume provider 內便捷的回溯功能。
  3. 配置cinder-backup
    1. Cinder 的 backup 功能是由 cinder-backup 服務提供的,devstack 默認沒有啓用該服務,須要手工啓用。
    2. 與 cinder-volume 相似,cinder-backup 也經過 driver 架構支持多種備份 backend,包括POSIX 文件系統、NFS、Ceph、GlusterFS、Swift 和 IBM TSM
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      root@controller:~# ll /opt/stack/cinder/cinder/backup/drivers/
      total 140
      drwxr-xr-x 2 stack stack  4096 Jun 14 14:47 ./
      drwxr-xr-x 3 stack stack  4096 Jun 14 16:41 ../
      -rw-r--r-- 1 stack stack 54276 Jun 14 14:47 ceph.py
      -rw-r--r-- 1 stack stack  3528 Jun 14 14:47 glusterfs.py
      -rw-r--r-- 1 stack stack 14245 Jun 14 14:47 google.py
      -rw-r--r-- 1 stack stack     0 Jun 14 14:47 __init__.py
      -rw-r--r-- 1 stack stack  3868 Jun 14 14:47 nfs.py
      -rw-r--r-- 1 stack stack  5864 Jun 14 14:47 posix.py
      -rw-r--r-- 1 stack stack 18587 Jun 14 14:47 swift.py
      -rw-r--r-- 1 stack stack 21172 Jun 14 14:47 tsm.py

    3. 這裏以 NFS 爲 backend 來研究 backup 操做,在/etc/cinder/cinder.conf中進行配置:
      1
      2
      3
      4
      5
      root@controller:~# vim /etc/cinder/cinder.conf
      [DEFAULT]
      backup_driver = cinder.backup.drivers.nfs
      backup_mount_point_base = $state_path/backup_mount
      backup_share = 172.16.1.55:/backup
    4. 其中變量state_path在cinder.conf表示的是
      172.16.1.55是計算節點的管理網ip;172.16.1.55:/backup爲存放 volume backup 的 NFS 遠程目錄;nfs客戶端上mount point 爲 $state_path/backup_mount(掛載點位置)

    5. NFS配置:
      1. 計算節點(NFS 服務器):
        1. 安裝NFS服務器:root@compute:/# apt install nfs-kernel-server
        2. 編寫配置文件:
          1
          2
          root@compute:/# vim /etc/exports
          /backup *(rw,sync,no_subtree_check,no_root_squash)

          *表示不對客戶端作限制,若是指定具體的客戶端,將client替換爲客戶端ip。rw表示客戶端能夠讀寫服務器(即兩者中有一方更改,另外一邊也做一樣更改)
        3. 建立共享目錄:root@compute:/# mkdir -p /backup
        4. 重啓nfs服務:
           1
           2
           3
           4
           5
           6
           7
           8
           9
          10
          11
          12
          13
          14
          root@compute:/# systemctl restart nfs-kernel-server.service
          root@compute:/# systemctl status nfs-kernel-server.service
          * nfs-server.service - NFS server and services
             Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
             Active: active (exited) since Fri 2019-06-21 17:26:12 CST; 13s ago
            Process: 4152 ExecStopPost=/usr/sbin/exportfs -f (code=exited, status=0/SUCCESS)
            Process: 4146 ExecStopPost=/usr/sbin/exportfs -au (code=exited, status=0/SUCCESS)
            Process: 4142 ExecStop=/usr/sbin/rpc.nfsd 0 (code=exited, status=0/SUCCESS)
            Process: 4172 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
            Process: 4168 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
           Main PID: 4172 (code=exited, status=0/SUCCESS)
          
          Jun 21 17:26:12 compute systemd[1]: Starting NFS server and services...
          Jun 21 17:26:12 compute systemd[1]: Started NFS server and services.

      2. 控制節點(NFS客戶端)
        1. 安裝客戶端工具:root@controller:/# apt install nfs-common
        2. 查看NFS服務器上的共享目錄:  
          1
          2
          3
          root@controller:/# showmount -e 172.16.1.55
          Export list for 172.16.1.55:
          /backup *
          e:export
    6. 手工啓動cinder-backup服務: 
      1. root@controller:~# nohup /usr/bin/python /usr/local/bin/cinder-backup --config-file /etc/cinder/cinder.conf &
        1. 執行:mount -t nfs -o ... 172:16.1.55/backup /opt/stack/data/cinder/backup_mount/815381051c57f439493e8c2d80e70715/  backup_mount2不要管這個2,在記筆記的時候多試驗了一次
        2. 其實是將遠程共享目錄計算節點掛載到本地/opt/stack/data/cinder/backup_mount控制節點
        3. nohup是一個忽略HUP信號的POSIX命令,將命令放在nohup和&中間表示即便關閉xshell,遠程主機的命令也會繼續執行
          1. 不然在關閉xshell後,服務關閉,cinder-backup服務的State會變爲down
          2. 在運行完你要運行的命令後,重開一個xshell進行後續操做吧!
  4. 查看服務:
    1
    2
    3
    4
    5
    6
    7
    8
    root@controller:~# cinder service-list               
    +------------------+------------------------+------+---------+-------+----------------------------+-----------------+
    | Binary           | Host                   | Zone | Status  | State | Updated_at                 | Disabled Reason |
    +------------------+------------------------+------+---------+-------+----------------------------+-----------------+
    | cinder-backup    | controller             | nova | enabled | up    | 2019-06-21T10:10:17.000000 | -               |
    | cinder-scheduler | controller             | nova | enabled | up    | 2019-06-21T10:10:17.000000 | -               |
    | cinder-volume    | controller@lvmdriver-1 | nova | enabled | up    | 2019-06-21T10:10:14.000000 | -               |
    +------------------+------------------------+------+---------+-------+----------------------------+-----------------+
  5. dashboard配置backup選項
    1
    2
    3
    4
    5
    6
    7
    8
    #配置dashboard文件
    root@controller:~# vim /opt/stack/horizon/openstack_dashboard/local/local_settings.py
    #更改成True(默認爲False)
    OPENSTACK_CINDER_FEATURES = {
        'enable_backup': True,
    }
    #重啓web服務和會話存儲
    root@controller:~# systemctl reload apache2.service
    配置後:
相關文章
相關標籤/搜索