Longhorn 分布式存储

背景

longhorn 是基于 Kubernetes 构建的云原生分布式存储

依赖

Installation Requirements

ubuntu 安装依赖

由于我们的应用部署在 Ubuntu 上,因此这里介绍在 Ubuntu 上安装依赖的过程。

首先使用依赖检查脚本,我们可以根据脚本的报错安装缺少的依赖。

curl -sSfL https://raw.githubusercontent.com/longhorn/longhorn/v1.6.1/scripts/environment_check.sh | bash

安装依赖

sudo apt-get install open-iscsi nfs-common jq

由于依赖还需要节点使用 kubectl 并联通 apiserver,因此需要kubectl 安装及 kubeconfig 配置

标记节点

我们给节点增加 label 用于标识那些节点部署 longhorn。

kubectl label node kube-node-120 role=longhorn

挂载存储

  1. 首先使用 lvm 创建一块 lv
lvcreate -l 267437 -n longhorn ubuntu-vg

其中 267437ubuntu-vgpe 的个数,可以通过 vgdisplay 查看空闲 pe 个数。

  1. 将 lv 格式化
sudo mkfs.ext4 /dev/ubuntu-vg/longhorn

其中,lv 的路径 即 /dev/ubuntu-vg/longhorn 可以使用 lvdisplay 命令查看

  1. 挂载到目录
sudo mkdir -p /data/longhorn
sudo mount /dev/ubuntu-vg/longhorn /data/longhorn/
  1. 生成 fstab
sudo vim /etc/fstab
# mount /dev/mapper/ubuntu--vg-longhorn
/dev/mapper/ubuntu--vg-longhorn /data/longhorn ext4 defaults 0 0

其中 lvm 的创建可以参考文档系统运维|Linux LVM简明教程

部署

我们这里使用 helm 部署。

helm 部署

参考 Longhorn helm 部署的官方文档Longhorn | Documentation

helm pull longhorn/longhorn --version 1.6.2

helm upgrade --install longhorn ./longhorn \
  --namespace longhorn-system \
  --create-namespace \
  --version 1.6.1 \
  --values config.yaml
Note

需要提前挂载 /data/longhorn 目录

其中,config.yaml的配置如下

defaultSettings:
  # 配置默认数据存放地址
  defaultDataPath: /data/longhorn

service:
  ui:
    # -- Service type for Longhorn UI. (Options: "ClusterIP", "NodePort", "LoadBalancer", "Rancher-Proxy")
    type: NodePort
    # -- NodePort port number for Longhorn UI. When unspecified, Longhorn selects a free port between 30000 and 32767.
    nodePort: 30180
  manager:
    # -- Service type for Longhorn Manager.
    type: NodePort
    # -- NodePort port number for Longhorn Manager. When unspecified, Longhorn selects a free port between 30000 and 32767.
    nodePort: 30181

longhornManager:
  nodeSelector:
    role: longhorn


longhornDriver:
  nodeSelector:
    role: longhorn

页面

http://{your-node-ip}:30180/#/dashboard

故障恢复

从 replica 中恢复

参考