官方文档

记录下longhorn的使用 - rancherlab提供的开源分布式块存储方案

Longhorn 支持以下架构:

  1. AMD64
  2. ARM64(实验性)

longhotn需要open-iscsi,curl,findmnt,grep,awk,blkid,lsblk的依赖(是否需要单独安装可以使用这个脚本进行验证,centos7有可能需要单独安装下jqopen-iscsi)

利用rancher安装: 在rancher ui上选择自己的集群,然后找到对应app安装即可,v2.6.3测试没问题(尝试用kubectl安装的时候告诉我缺少NODE_NAME ENV,但是rancher就正常): https://longhorn.io/docs/1.2.3/deploy/install/install-with-rancher/

查看对应几个node是否正常创建longhorn(默认数据路径)ls /var/lib/longhorn

界面

创建应用进行测试

应用 yaml 创建 PVC 和 pod

pvc.yaml

1
2
3
4
5
6
7
8
9
10
11
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: longhorn-volv-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 2Gi

pod.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
apiVersion: v1
kind: Pod
metadata:
name: volume-test
namespace: default
spec:
containers:
- name: volume-test
image: nginx:stable-alpine
imagePullPolicy: IfNotPresent
volumeMounts:
- name: volv
mountPath: /data
ports:
- containerPort: 80
volumes:
- name: volv
persistentVolumeClaim:
claimName: longhorn-volv-pvc

整个集群空间使用

Dashboard页面中,Longhorn 会显示集群空间使用信息:

Schedulable:可用于 Longhorn 卷调度的实际空间。

Reserved:为其他应用程序和系统保留的空间。

Used:Longhorn、系统和其他应用程序使用的实际空间。

Disabled:不允许调度 Longhorn 卷的磁盘/节点的总空间。

每个节点的空间使用

Node页面中,Longhorn 将显示每个节点的空间分配、调度和使用信息:

Sizecolumn:Longhorn 卷可以使用的最大实际可用空间。它等于节点的总磁盘空间减去保留空间。

Allocated列:左边的数字是已经用于卷调度的大小,并不表示空间已经用于Longhorn卷数据存储。正确的数字是卷调度的最大大小,Size乘以Storage Over Provisioning Percentage. (在上图中,Storage Over Provisioning Percentage是 500。)因此,这两个数字之间的差异(我们称之为可分配空间)决定了是否可以将卷副本调度到该节点。

Usedcolumn:左边部分表示该节点当前使用的空间。整条表示节点的总空间。

注意,设置大于 100 时,可分配空间可能会大于节点的实际可用空间Storage Over Provisioning Percentage。如果卷被大量使用,卷快照中会存储大量历史数据,请谨慎使用此设置的值很大。有关设置的更多信息,请参阅此处了解详细信息。