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

news2024/12/25 2:15:30

全文目录导航

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

在这里插入图片描述

打开 【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 名称,这样就不需要修改工作负载的配置

在这里插入图片描述

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/187288.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

车载以太网 - SomeIP测试专栏 - SomeIP Header - 03

前面已经简单的介绍了整帧SomeIP报文的组成部分,由于Ethernet报文头都是通用的,因此不会做详细的介绍,当然后面在介绍TC8中的TCP、UDP、IPv4、IPv6的时候也会做简单的介绍。不过在这里就不做介绍了,我们直接介绍SomeIP。 SomeIP Header 一、Message ID Message ID是由Serv…

Web3中文|构建Web3融资交易:股权和内部代币分配的比例

2017年,首次币发行(ICO,Initial Coin Offering,也称首次代币发售、区块链众筹,是用区块链把使用权和加密货币合二为一,来为开发、维护、交换相关产品或者服务的项目进行融资的方式)的融资方式激…

聚观早报 | 抖音超市上线;首架国产大飞机 C919 完成首次飞行

今日要闻:抖音超市上线;首架国产大飞机 C919 完成首次飞行;小鹏汽车计划有 5 款车型上市;2023年春节档电影总票房67.58亿元;亚洲首富被空头重创抖音超市上线 1 月 28 日消息,抖音超市已上线抖音 App&#x…

Javadoc(文档注释)详解

Java 支持 3 种注释,分别是单行注释、多行注释和文档注释。文档注释以/**开头,并以*/结束,可以通过 Javadoc 生成 API 帮助文档,Java 帮助文档主要用来说明类、成员变量和方法的功能。文档注释只放在类、接口、成员变量、方法之前…

vue+element高度仿照QQ音乐,完美实现PC端QQ音乐

一.前言 QQ音乐官网:点击访问作者成品效果预览:点击访问作者其他博客成品汇总预览:点击访问 暂时源码并没有提供其他获取渠道,私聊作者获取即可,或通过博客后面名片添加作者,很简单! 二.主要…

创建的vue项目--打包

自创建的项目(未使用项目框架),使用weabpack打包 1.在package.json文件中配置 2.在控制台执行打包命令npm run build 打包完成后,会在项目中生成一个dist文件夹,其中就是打包生成的静态文件 3.打开index.html&…

RocketMq基础详解

1、RocketMq的架构: 在RocketMq中有四个部分组成,分别是Producer,Consumer,Broker,以及NameServer,类比于生活中的邮局,分别是发信者,收信者,负责暂存,传输的…

找到二叉树中的最大搜索二叉树

题目 给定一棵二叉树的头节点 head,一致其中所有节点的值都不一样,找到含有节点最多的搜索二叉树,并返回这棵子树的头节点。 示例 分析 树形dp套路:如果题目求解目标是S规则,则求解流程可以定成以每一个节点为头节点…

【前端】如何判断是页面滚动还是窗口滚动

在写项目的时候遇到这个问题&#xff0c;现在举两个例子来记录这个问题。 页面滚动 html: <div class"temp"><template v-for"item in 100"><div>{{ item }}</div></template> </div>css: .temp {height: 100px;o…

老马闲评数字化「3」业务说了算还是技术说了算?

原文作者&#xff1a;行云创新CEO 马洪喜 导语 前两集和大伙聊了一下“数字化不转型行不行”以及“你的企业急不急着转”这两个话题。后面收到不少朋友的消息&#xff0c;说写的挺好&#xff0c;但“急着转、不敢转”的情况非常的普遍&#xff0c;有没有啥好主意给说一说。 麦…

冬去春来,ToB行业压缩的弹簧就要迸发了

目前来看&#xff0c;认知、实践、技术、服务这四方面的新变化&#xff0c;都将成为2023年企业数智化业务需求“井喷”的重要原因。 作者|周羽 出品|产业家 2023&#xff0c;冬去春来。 不止于字面。新的一年&#xff0c;中国的ToB厂商即将迎来“拨云见日”的朗朗晴空。 …

[文件上传工具类] MultipartFile 统一校验

目录​​​​​​​ 1. 创建上传文件的统一校验类 包含功能: -> 1. 多文件上传校验 -> 2. 文件名字校验(特殊符号) -> 3. 文件后缀校验 2. 使用方式 建议: 在文件上传开始的位置添加 -> 两个重载方法, 单文件 多文件都支持 -> 示例: 直接可以用, 任意位…

C++ 包装器function

目录 1、为什么需要包装器&#xff1f; 2、包装器的声明和使用 (1) 声明 (2) 实际应用 (3) 包装器接收类成员函数 3、包装器的绑定&#xff1a;bind函数 (1) 调整参数顺序 (2) 调整参数个数 1、为什么需要包装器&#xff1f; 函数模板可以接收各种不同类型的参数&…

光流正负值的含义以及如何利用光流进行warping

本文主要介绍光流的形式&#xff0c;光流值的正负代表什么含义&#xff0c;以及如何利用光流进行warping。 1. 光流正负值的含义 光流的概念&#xff1a;光流表示的是从reference frame到target frame&#xff0c;物体的移动。光流的形式&#xff1a;光流的表示也是数字化的。…

镭速-跨国车企数据高速、安全跨境传输解决方案

一、背景及趋势 在新一代信息技术驱动的数字经济时代&#xff0c;数据已然成为新型生产要素&#xff0c;是国家基础性资源和战略性资源。在汽车市场全球化背景下&#xff0c;产品、数据双跨境将成为车企未来常态。数据的价值核心在于流通和应用&#xff0c;但数据也牵涉着竞争…

23.1.30 将TF-A源码移植的过程,整理成自己的笔记

将TF-A源码移植的过程&#xff0c;整理成自己的笔记&#xff0c;上传到CSDN 一、配置TF-A源码 自动探测 自动换行 1.对tf-a源码进行解压 tar xfz tf-a-stm32mp-2.2.r2-r0.tar.gz 打补丁 3.进入tf-a源码目录 $> cd tf-a-stm32mp-2.2.r2 4.打补丁命令 $> for p in ls -1 .…

JavaScript中的Array对象~

初识Array&#xff1a; Array 对象用于在单个的变量中存储多个值 定义&#xff1a; 方式1 //返回的数组为空&#xff0c;length字段为0 var 变量名new Array(); //size是期望的数组元素个数&#xff0c;返回的length字段将被设置为size的值--返回具有指定个数&#xff0c;元…

vue2面试题持续更新。。。

文章目录1、vue 修改数据页面不重新渲染数组/对象的响应式 &#xff0c;vue 里面是怎么处理的&#xff1f;2、生命周期Vue 生命周期都有哪些&#xff1f;父子组件生命周期执行顺序3、watch 和 computed 的区别4、组件通信&#xff08;组件间传值&#xff09;5、$nextTick6、修饰…

postman常用变量总结

一、变量分类环境变量&#xff1a;只在所属环境内使用&#xff1b;全局变量&#xff1a;整个postman中全部接口皆可使用该变量&#xff1b;集合变量&#xff1a;只在设置的集合中可使用&#xff0c;且与环境无关&#xff1b;局部变量数据变量二、环境变量设置方式方式一方式二方…

网络知识详解之:HTTP协议基础

网络知识详解之&#xff1a;HTTP协议基础 计算机网络相关知识体系详解 网络知识详解之&#xff1a;TCP连接原理详解网络知识详解之&#xff1a;HTTP协议基础网络知识详解之&#xff1a;HTTPS通信原理剖析&#xff08;对称、非对称加密、数字签名、数字证书&#xff09;网络知…