Longhorn,企业级云原生容器分布式存储 - 支持 ReadWriteMany (RWX) 工作负载(实验性功能)
内容来源于官方 Longhorn 1.1.2
英文技术手册。
系列
- Longhorn 是什么?
- Longhorn 企业级云原生容器分布式存储解决方案设计架构和概念
- Longhorn 企业级云原生容器分布式存储-部署篇
- Longhorn 企业级云原生容器分布式存储-券(Volume)和节点(Node)
- Longhorn,企业级云原生容器分布式存储-K8S 资源配置示例
- Longhorn,企业级云原生容器分布式存储 - 监控(Prometheus+AlertManager+Grafana)
- Longhorn,企业级云原生容器分布式存储 - 备份与恢复
- Longhorn,企业级云原生容器分布式存储 - 支持 ReadWriteMany (RWX) 工作负载(实验性功能)
Longhorn
通过 NFSv4
服务器(share-manager
)公开常规 Longhorn
卷,原生支持 RWX
工作负载。
对于每个正在使用的 RWX
卷 Longhorn
将在 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
创建期间指定访问模式。
通过 UI
为 Longhorn
卷创建 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
历史
- 从 v1.0.1 开始可用,
External provisioner
- 从 v1.1.0 开始可用,
Native RWX support
Longhorn,企业级云原生容器分布式存储 - 支持 ReadWriteMany (RWX) 工作负载(实验性功能)的更多相关文章
- Longhorn,企业级云原生容器分布式存储 - 定制默认设置
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生容器分布式存储 - 设计架构和概念 Longhorn 云原生容器分布式存储 - ...
- Longhorn,企业级云原生容器分布式存储 - K8S 资源配置示例
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 企业级云原生容器分布式存储解决方案设计架构和概念 Longhorn 企业级云原生容器分 ...
- Longhorn,企业级云原生容器分布式存储 - 监控(Prometheus+AlertManager+Grafana)
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 企业级云原生容器分布式存储解决方案设计架构和概念 Longhorn 企业级云原生容器分 ...
- Longhorn,企业级云原生容器分布式存储 - 备份与恢复
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 企业级云原生容器分布式存储解决方案设计架构和概念 Longhorn 企业级云原生容器分 ...
- Longhorn,企业级云原生容器分布式存储 - 高可用
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 企业级云原生容器分布式存储解决方案设计架构和概念 Longhorn 企业级云原生容器分 ...
- Longhorn 企业级云原生容器存储解决方案-部署篇
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生分布式块存储解决方案设计架构和概念 安装 Longhorn 可以通过多种方式安装 ...
- Longhorn 云原生容器分布式存储 - Air Gap 安装
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生容器分布式存储 - 设计架构和概念 Longhorn 云原生容器分布式存储 - ...
- Longhorn 云原生容器分布式存储 - Python Client
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生容器分布式存储 - 设计架构和概念 Longhorn 云原生容器分布式存储 - ...
- Longhorn 云原生容器分布式存储 - 故障排除指南
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生容器分布式存储 - 设计架构和概念 Longhorn 云原生容器分布式存储 - ...
随机推荐
- 带实习生学Spring Boot 之 Spring Profiles
大家好,我是指北君. 最近公司新来了一个实习生,挺上进的,天天追着我问问题.指北君开启了带实习生打怪升级之路.吶,今天问了一个关于 Spring Profiles 的问题. 实习生:指北君,你知道 S ...
- 微软商业智能系列(一)初识微软BI
随着移动互联网.云计算.物联网和大数据技术的广泛应用,社会已经迈入全新的数据时代.掌握数据资产,进行智能化决策,已成为企业胜出的关键.越来越多的企业开始重视数据战略布局,重新定义自己的核心竞争力,从数 ...
- python sqlite3 类
import sys import os import sqlite3 ##sys.path.append(os.path.abspath(os.path.dirname(__file__) + '/ ...
- Java基础00-Debug11
1. Debug 1.1 Debug概述 1.2 Debug操作流程 1.2.1 如何加断点 1.2.2 如何运行加了断点的程序 1.2.3 看哪里 1.2.4 点哪里 1.2.5 如何删除断点 多个 ...
- [008] - JavaSE面试题(八):集合
第一期:Java面试 - 100题,梳理各大网站优秀面试题.大家可以跟着我一起来刷刷Java理论知识 [008] - JavaSE面试题(八):集合 第1问:说一下集合的体系? 单列集合: 双列集合: ...
- springboot-3-web开发
一.视图层技术thymeleaf 我们一般都是基于3.x版本 1.流程: 导入依赖 <!--整合thymeleaf技术--> <dependency> <groupId& ...
- Docker与k8s的恩怨情仇(六)—— “容器编排”上演“终结者”大片
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 在上节中,我们为大家介绍了Pod的基础内容,Kubernetes如何站在上帝视角上处理容器和容器之间的关系. ...
- 02_Java基础类型和包装类型
基本数据类型 包装类名称 所占字节数 默认值 byte Byte 1 0 short Short 2 0 Int Integer 4 0 long Long 8 0L double Double 8 ...
- 如何写好技术文档——来自Google十多年的文档经验
本文大部分内容翻译总结自<Software Engineering at Google> 第10章节 Documentation. 另外,该书电子版近日已经可以免费下载了 https:// ...
- 深入jvm虚拟机--第一篇 void TemplateInterpreterGenerator::generate_and_dispatch(Template* t, TosState tos_out) 函数
今天第一次使用虚拟姐打断点,断点设置在了void TemplateInterpreterGenerator::generate_and_dispatch(Template* t, TosState t ...