Longhorn部署安装和管理

Longhorn部署

环境信息

软件 版本
操作系统 centos7.8
rancher v2.3.8-ent2
Kubernetes 1.17.4
Longhorn

初始化

节点上安装iscsi插件

1
yum install iscsi-initiator-utils

将需要添加到Longhorn的磁盘进行格式化和挂载到/var/lib/longhorn目录

1
mkfs.xfs /dev/vdb
1
mount /dev/vdb /var/lib/longhorn

部署Longhorn

通过Rancher应用商店启动Longhorn

根据实际情况配置参数

启动后访问Longhorn

在rancher中创建workload绑定PVC进行测试

扩容磁盘

在Longhorn界面上选择对应的节点

添加磁盘挂载路径即可

存储卷扩容

有两种扩展Longhorn体积的方法:使用PersistentVolumeClaim(PVC)和Longhorn UI。

如果使用的是Kubernetes v1.14或v1.15,则只能使用Longhorn UI扩展卷。

通过PVC
仅在以下情况下应用此方法:

  • Kubernetes版本v1.16或更高版本。
  • Kubernetes使用Longhorn StorageClass动态设置PVC。
  • StorageClass中的allowVolumeExpansion字段设置为true。

用法:将workload副本设置为0,在Longhorn卷找到相应的PVC,然后通过kubectl修改对应的pvc中的spec.resources.requests.字段,在Longhorn中对应的卷大小会自动更新。

存储卷快照

选择对应的存储卷,创建快照

还原快照
1、将挂载此卷的workload副本数设置为0
2、重新将此卷使用维护模式挂载到对应的节点。

3、选择卷快照还原,还原后将磁盘从对应节点卸载。

4、应用启动查看数据。

Longhorn备份和灾难恢复

概述

Longhorn做为分布式块存储,本身能支持针对存储卷的备份和数据卷的灾难恢复。用以下示例讲解Longhorn存储卷备份和灾难恢复。

数据卷备份

Longhorn支持存储卷的备份,将数据卷备份到AWS S3、NFSv4,采用快照方式增量备份到后端的backend存储上。以NFSv4做为后端backend为例配置后端存储。

节点安装NFS套件

1
yum install nfs-utils

创建共享目录

1
mkdir /nfsdata

配置exports

1
vim /etc/exports
1
/nfsdata  *(rw,sync,no_root_squash)

启动服务并设置开机启动

1
2
3
4
5
6
7
8
systemctl enable rpcbind
systemctl enable nfs-server
systemctl enable nfs-lock
systemctl enable nfs-idmap
systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
systemctl start nfs-idmap

NFSV4挂载测试

1
mount -t nfs host_ip:/nfsdata /mnt/

在Longhorn界面上配置存储对接

创建备份

在对应的backup选项内可以看见创建出来的备份

对应nfs服务器查看数据,可以看见数据被分成了一个个块,以分块的方式存储。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[root@iZ2zegq8vbaetetmgkyq4pZ /]# tree /nfsdata/
/nfsdata/
└── backupstore
└── volumes
└── 5d
└── d6
└── pvc-0853fa8c-512a-11ea-98d5-00163e122063
├── backups
│   └── backup_backup-b39c1feeeef94bf5.cfg
├── blocks
│   ├── 2e
│   │   └── 96
│   │   └── 2e96c43b271147b95c36f12d09a284062e7ca746185a99f203d6e857cb62721a.blk
│   ├── 4b
│   │   └── f3
│   │   └── 4bf324201d1805d2c15fe5f97158ac376c7e01ffb21eaca00094eb70ecf673b5.blk
│   ├── 73
│   │   └── 18
│   │   └── 731859029215873fdac1c9f2f8bd25a334abf0f3a9e1b057cf2cacc2826d86b0.blk
│   ├── a6
│   │   └── b3
│   │   └── a6b3b084f3a14e2557a4185d34fd07707ece662570298a02cf3fd745c6521725.blk
│   ├── b2
│   │   └── 2c
│   │   └── b22c71a142d7c1f8b8ba287e27bf62752087cec2bc0c8b58db5a96047d138a73.blk
│   ├── bd
│   │   └── 90
│   │   └── bd90eab7f660b8ae3c97a3a4cd4808d361518730282befc8e2113ae31b0a45ee.blk
│   ├── d9
│   │   └── 46
│   │   └── d9462886143128037ae7c2e07bebd980c87ae4f1590c2dc4307962cc6d9f9f9f.blk
│   └── ea
│   └── 2c
│   └── ea2c43cad3a82e7cc76695b0fa04bacced0c5bb4d041785eef85580d120fb383.blk
└── volume.cfg

23 directories, 10 files

数据卷还原

数据卷还原步骤:
1、workload暂停使用,副本设置为0。
2、基于备份卷创建一个还原卷。

3、基于还原卷可创建新的PV和PVC或覆盖原有pvc。

基于备份卷创建新的PVC

填写卷名

基于卷创建对应的PV和PVC

若覆盖现用的PVC

1、覆盖原有pvc需要在Longhorn界面将原有volume删除或删除对应的PVC。

2、若覆盖现用的PVC,需要勾选 Use Previous Name,就创建与之前对应的卷名。

2、基于volume创建对应PV/PVC

3、将POD副本重新设置为正常,启动后查看卷内数据。

数据卷的灾难恢复


Longhorn数据卷的灾难恢复步骤:

1、A集群做为主集群对数据卷进行备份到远端backend。
2、B集群做为备集群指向与A集群一样的远端backend。

3、在B集群基于备份卷创建Create Disaster Recovery Volume。

4、基于创建的Create Disaster Recovery Volume创建PVC到对应的namespace。

激活Disaster Recovery

5、创建POD挂载新建的PVC。