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

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 管理界面

在这里插入图片描述

打开 【Setting】-【General】

在这里插入图片描述

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

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

在这里插入图片描述

3. 数据卷备份恢复操作


3.1 创建示例工作负载

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

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

在这里插入图片描述

3.2 创建测试数据

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

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

在这里插入图片描述

3.3 创建数据卷备份

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

在这里插入图片描述

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

在这里插入图片描述

3.4 删除数据库数据

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值