内容来源于官方 Longhorn 1.1.2 英文技术手册。

系列

Longhorn 通过 NFSv4 服务器(share-manager)公开常规 Longhorn 卷,原生支持 RWX 工作负载。

对于每个正在使用的 RWXLonghorn 将在 longhorn-system 命名空间中创建一个 share-manager-<volume-name> Pod

Pod 负责通过在 Pod 内运行的 NFSv4 服务器导出 Longhorn 卷。

还有为每个 RWX 卷创建的服务,用作实际 NFSv4 客户端连接的端点。

要求

为了能够使用 RWX 卷,每个客户端节点都需要安装 NFSv4 客户端。

对于 Ubuntu,您可以通过以下方式安装 NFSv4 客户端:

apt install nfs-common

对于基于 RPM 的发行版,您可以通过以下方式安装 NFSv4 客户端:

yum install nfs-utils

如果 NFSv4 客户端在节点上不可用,则在尝试挂载卷时,以下消息将是错误的一部分:

for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program.\n

RWX 卷的创建和使用

对于动态配置的 Longhorn 卷,访问模式基于 PVC 的访问模式。

对于手动创建的 Longhorn 卷(恢复、DR 卷),可以在 Longhorn UI 创建期间指定访问模式。

通过 UILonghorn 卷创建 PV/PVC 时,PV/PVC 的访问模式将基于卷的访问模式。

只要卷未绑定到 PVC,就可以通过 UI 更改 Longhorn 卷的访问模式。

对于 RWX PVC 使用的 Longhorn 卷,卷访问模式将更改为 RWX

故障处理

share-manager Pod 的任何故障(卷故障、节点故障等)都将导致重新创建 Pod 并设置卷的 remountRequestedAt 标志,

这将导致 workload Pods 被删除,Kubernetes 重新创建它们。此功能取决于

卷意外分离时自动删除工作负载 Pod 的设置,

默认情况下为 true。如果该设置被禁用,workload Pods 可能会在 RWX 卷故障时出现 io errors

建议启用上述设置以保证在 RWX 卷出现问题时自动进行工作负载故障转移。

从以前的外部供应商迁移

下面的 PVC 创建了一个 Kubernetes job,可以将数据从一个卷复制到另一个卷。

  • data-source-pvc 替换为之前由 Kubernetes 创建的 NFSv4 RWX PVC 的名称。
  • data-target-pvc 替换为您希望用于新工作负载的新 RWX PVC 的名称。

您可以手动创建一个新的 RWX Longhorn volume + PVC/PV,或者只创建一个 RWX PVC,然后让 Longhorn 为您动态配置一个卷。

两个 PVC 都需要存在于同一个命名空间中。如果您使用的命名空间与默认命名空间不同,请在下方更改 job 的命名空间。

apiVersion: batch/v1
kind: Job
metadata:
namespace: default # namespace where the PVC's exist
name: volume-migration
spec:
completions: 1
parallelism: 1
backoffLimit: 3
template:
metadata:
name: volume-migration
labels:
name: volume-migration
spec:
restartPolicy: Never
containers:
- name: volume-migration
image: ubuntu:xenial
tty: true
command: [ "/bin/sh" ]
args: [ "-c", "cp -r -v /mnt/old /mnt/new" ]
volumeMounts:
- name: old-vol
mountPath: /mnt/old
- name: new-vol
mountPath: /mnt/new
volumes:
- name: old-vol
persistentVolumeClaim:
claimName: data-source-pvc # change to data source PVC
- name: new-vol
persistentVolumeClaim:
claimName: data-target-pvc # change to data target PVC

历史

Longhorn,企业级云原生容器分布式存储 - 支持 ReadWriteMany (RWX) 工作负载(实验性功能)的更多相关文章

  1. Longhorn,企业级云原生容器分布式存储 - 定制默认设置

    内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生容器分布式存储 - 设计架构和概念 Longhorn 云原生容器分布式存储 - ...

  2. Longhorn,企业级云原生容器分布式存储 - K8S 资源配置示例

    内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 企业级云原生容器分布式存储解决方案设计架构和概念 Longhorn 企业级云原生容器分 ...

  3. Longhorn,企业级云原生容器分布式存储 - 监控(Prometheus+AlertManager+Grafana)

    内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 企业级云原生容器分布式存储解决方案设计架构和概念 Longhorn 企业级云原生容器分 ...

  4. Longhorn,企业级云原生容器分布式存储 - 备份与恢复

    内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 企业级云原生容器分布式存储解决方案设计架构和概念 Longhorn 企业级云原生容器分 ...

  5. Longhorn,企业级云原生容器分布式存储 - 高可用

    内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 企业级云原生容器分布式存储解决方案设计架构和概念 Longhorn 企业级云原生容器分 ...

  6. Longhorn 企业级云原生容器存储解决方案-部署篇

    内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生分布式块存储解决方案设计架构和概念 安装 Longhorn 可以通过多种方式安装 ...

  7. Longhorn 云原生容器分布式存储 - Air Gap 安装

    内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生容器分布式存储 - 设计架构和概念 Longhorn 云原生容器分布式存储 - ...

  8. Longhorn 云原生容器分布式存储 - Python Client

    内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生容器分布式存储 - 设计架构和概念 Longhorn 云原生容器分布式存储 - ...

  9. Longhorn 云原生容器分布式存储 - 故障排除指南

    内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生容器分布式存储 - 设计架构和概念 Longhorn 云原生容器分布式存储 - ...

随机推荐

  1. 每日三道面试题,通往自由的道路13——锁+Volatile

    茫茫人海千千万万,感谢这一秒你看到这里.希望我的面试题系列能对你的有所帮助!共勉! 愿你在未来的日子,保持热爱,奔赴山海! 每日三道面试题,成就更好自我 我们既然聊到了并发多线程的问题,怎么能少得了锁 ...

  2. Helm Template初体验,方便管理多环境

    我最新最全的文章都在南瓜慢说 www.pkslow.com,文章更新也只在官网,欢迎大家来喝茶~~ 1 简介 Helm作为一个优秀的包管理器,这部分我们之前已经做了介绍,文章如下: 用Helm部署Ku ...

  3. GitBook在Windows上安装及使用

    GitBook是基于Nodejs,使用Git/Github和Markdown制作电子书的命令行工具. 1.安装Nodejs 首先,安装Nodejs,官网地址:https://nodejs.org/en ...

  4. python 抓取异常

    aa={"a":2,"b":1} for i in range(10): aa["a"]=aa["a"]-i print ...

  5. C语言:编译具体过程及隐藏

    对于平常应用程序的开发,很少有人会关注编译和链接的过程,因为我们使用的工具一般都是流行的集成开发环境(IDE),比如 Visual Studio.Dev C++.C-Free 等.这些功能强大的 ID ...

  6. [007] - JavaSE面试题(七):异常

    第一期:Java面试 - 100题,梳理各大网站优秀面试题.大家可以跟着我一起来刷刷Java理论知识 [007] - JavaSE面试题(七):异常 第1问:Error和Exception的区别? E ...

  7. Redis学习——常用小功能

    一.慢查询分析(查询日志:所谓慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阀值,就将这条命令的相关信息(例如:发生时间,耗时,命令的详细信息)记录下来,Redis也提供了类似的功 ...

  8. 消息队列 折腾ActiveMQ时遇到的问题和解决方法

    1.先讲严重的:服务挂掉. 这得从ActiveMQ的储存机制说起.在通常的情况下,非持久化消息是存储在内存中的,持久化消息是存储在文件中的,它们的最大限制在配置文件的<systemUsage&g ...

  9. 大数据学习(13)—— HBase入门

    从这一篇起,开始介绍HBase相关知识.还是一样,大数据的学习,获取官网知识很重要.官网看这里Apache HBase HBase简介 Apache HBase is the Hadoop datab ...

  10. 《Android原生整合虹软SDK开发uniapp插件》

    1.项目背景 应公司要求,需要开发一套类似人脸打卡功能的app,但是因为我们公司没有很强的原生android开发者,所以根据现状选择了第三方跨平台的uniapp,想必目前大多人都了解这个平台了,我也就 ...