Rancher 中使用 Longhorn 备份恢复数据卷

全文目录导航

      • 0. 前言
      • 1. NFS 安装配置
        • 1.1 安装 nfs 及 rpcbind
        • 1.2 创建共享目录
        • 1.3 配置访问权限
        • 1.4 限制 `showmount -e` 防止漏洞扫描
        • 1.5 防火墙配置
      • 2. Longhorn 备份配置
        • 2.1 在 Longhorn UI 中配置
      • 3. 数据卷备份恢复操作
        • 3.1 创建示例工作负载
        • 3.2 创建测试数据
        • 3.3 创建数据卷备份
        • 3.4 删除数据库数据
        • 3.5 恢复数据卷

0. 前言


Longhorn 是 Rancher 商店中自带的分布式块存储服务,部署配置方便,且提供了美观易用的 UI。
Longhorn 中的数据卷备份功能需要外部存储,例如 s3 或 nfs,本文以 nfs 服务作为备份存储服务。

1. NFS 安装配置


1.1 安装 nfs 及 rpcbind

  • 有外网环境直接 yum 下载安装

    yum -y install nfs-utils rpcbind
    
  • 无外网环境下载离线程序包安装

    repotrack nfs-utils
    repotrack rpcbind
    
  • 启动服务

    systemctl start nfs && systemctl enable nfs
    systemctl start rpcbind && systemctl enable rpcbind
    

1.2 创建共享目录

  • 创建目录并赋权限

    mkdir -p /home/nfs && chmod -R 777 /home/nfs
    

1.3 配置访问权限

  • 限制指定主机访问

    # 单个主机地址
    echo "/home/nfs 192.168.1.101(rw,sync,no_root_squash)" >> /etc/exports
    # 多个主机地址
    echo "/home/nfs 192.168.1.101(rw,sync,no_root_squash) 192.168.1.102(rw)" >> /etc/exports
    
  • 限制主机 IP 范围访问

    # 192.168.1 网段可以访问
    echo "/home/nfs 192.168.1.*(rw,sync,no_root_squash)" >> /etc/exports
    
  • 无限制访问(不安全)

    echo "/home/nfs *(rw)" >> /etc/exports
    
  • 加载配置

    exportfs -r
    

1.4 限制 showmount -e 防止漏洞扫描

  • 配置 /etc/hosts.allow

    # 此处配置允许挂载及 showmount -e 查看共享目录的主机
    mountd:192.168.1.101
    mountd:192.168.1.102
    rpcbind:192.168.1.101
    rpcbind:192.168.1.102
    
  • 配置 /etc/hosts.deny

    # 此处拦截除 allow 中配置的主机以外的所有
    mountd:all
    rpcbind:all
    
  • 验证配置是否成功

    # 从 192.168.1.103 查看,无权访问
    [root@103 ~]# showmount -e 192.168.1.101
    clnt_create: RPC: Port mapper failure - Authentication error
    
    # 从 192.168。1.102 查看,有权访问
    [root@102 ~]# showmount -e 192.168.1.101
    Export list for 192.168.1.101:
    /home/nfs-data 192.168.1.101,192.168.1.102
    

1.5 防火墙配置

由于 nfs 服务中有几个端口是随机的,无法在防火墙中指定,所以需要修改配置文件指定相关端口。

  • /etc/sysconfig/nfs 文件中增加以下内容

    # custom add
    RQUOTAD_PORT=1001
    LOCKD_TCPPORT=32803
    LOCKD_UDPPORT=32769
    MOUNTD_PORT=892
    
  • 配置防火墙规则

    firewall-cmd --permanent --add-port=111/tcp
    firewall-cmd --permanent --add-port=111/udp
    firewall-cmd --permanent --add-port=2049/tcp
    firewall-cmd --permanent --add-port=2049/udp
    firewall-cmd --permanent --add-port=32803/tcp
    firewall-cmd --permanent --add-port=32803/udp
    firewall-cmd --permanent --add-port=32769/tcp
    firewall-cmd --permanent --add-port=32769/udp
    firewall-cmd --permanent --add-port=1001/tcp
    firewall-cmd --permanent --add-port=1001/udp
    firewall-cmd --permanent --add-port=892/tcp
    firewall-cmd --permanent --add-port=892/udp
    firewall-cmd --reload
    

    需要更高的安全性的话,可以指定以上端口开发给哪些 ip 或 ip 范围

2. Longhorn 备份配置


2.1 在 Longhorn UI 中配置

在集群仪表板中,进入 Longhorn 管理界面

Rancher 中使用 Longhorn 备份恢复数据卷_第1张图片

打开 【Setting】-【General】

Rancher 中使用 Longhorn 备份恢复数据卷_第2张图片

找到 Backup Target 项,填入 nfs 路径后在页面最下方点击保存按钮即可

nfs://192.168.1.101:/home/nfs-data

在这里插入图片描述

3. 数据卷备份恢复操作


3.1 创建示例工作负载

以 postgres 数据库服务为测试对象

  • 部署有状态工作负载,创建 pvc 数据卷

Rancher 中使用 Longhorn 备份恢复数据卷_第3张图片

3.2 创建测试数据

使用 navicat 连接数据库服务,创建测试数据

  • 创建 demo 数据库,user 表,并且在表中插入了一条测试数据

Rancher 中使用 Longhorn 备份恢复数据卷_第4张图片

3.3 创建数据卷备份

在 Longhorn UI 的 Volumne 菜单中选中刚才创建的数据卷,点击菜单栏中的创建备份按钮(Create Backup),根据需要添加标签(Labels)

Rancher 中使用 Longhorn 备份恢复数据卷_第5张图片

创建完成后,在备份(Backup)菜单中可以看到本次创建的备份信息

Rancher 中使用 Longhorn 备份恢复数据卷_第6张图片

3.4 删除数据库数据

在 Navicat 中删除刚才创建的 demo 数据库,然后停止数据库服务

在这里插入图片描述

3.5 恢复数据卷

  • 在卷(Volume)列表中删除当前的数据卷

Rancher 中使用 Longhorn 备份恢复数据卷_第7张图片

  • 在备份(Backup)列表中找到刚才备份的数据卷,点击菜单中的恢复(Restore)

Rancher 中使用 Longhorn 备份恢复数据卷_第8张图片

  • 填写必要信息,勾选使用之前的 PVC 名称(Use Previous Name),其他无需填写

Rancher 中使用 Longhorn 备份恢复数据卷_第9张图片

  • 再次打开卷(Volume)列表,发现刚才删除的卷已经回来,需要重新创建 PVC

Rancher 中使用 Longhorn 备份恢复数据卷_第10张图片

默认即可,使用之前的 PVC 名称,这样就不需要修改工作负载的配置

Rancher 中使用 Longhorn 备份恢复数据卷_第11张图片

创建成功后,再次启动数据库服务,查看数据已经恢复

Rancher 中使用 Longhorn 备份恢复数据卷_第12张图片

你可能感兴趣的:(Rancher,云平台,rancher,linux,运维)