首页
>
Posts
>
杂-记录新的分布式存储(iomesh)使用指南
发布时间 2025-01-23 11:30:47
/
次阅读
最近公司产品部署到客户公司使用的一款小众些的分布式存储-iomesh, 做下流水账记录
一、环境准备
-
硬件要求
- 每个节点至少需:
- 1块缓存盘(Cache Disk,推荐SSD)
- 1块数据盘(Partition Disk)
- 网络分离(建议存储网络独立,如10.234.1.0/24)
-
系统配置
1# 所有节点安装 open-iscsi
2apt install open-iscsi -y
3
4# 修改iSCSI配置
5sudo sed -i 's/^node.startup = automatic$/node.startup = manual/' /etc/iscsi/iscsid.conf
6sudo modprobe iscsi_tcp
7echo "iscsi_tcp" | sudo tee /etc/modprobe.d/iscsi-tcp.conf
8systemctl enable --now iscsid
二、Kubernetes集群部署
-
要求
- Kubernetes 1.24+
- Containerd作为容器运行时
-
节点准备
1# Master节点参与调度(如需)
2kubectl taint nodes --all node-role.kubernetes.io/control-plane- node-role.kubernetes.io/master-
三、IOMesh离线安装
-
安装包准备
1tar -xvf iomesh-offline-v0.11.1.tgz
2cd iomesh-offline
3ctr --namespace k8s.io image import ./images/iomesh-offline-images.tar
-
生成配置文件
1./helm show values charts/iomesh > iomesh.yaml
-
关键配置项
1iomesh:
2 chunk:
3 dataCIDR: "10.234.1.0/24" # 存储专用网络
4 diskDeploymentMode: "hybridFlash" # 或 "allFlash"
5 deviceMap:
6 cacheWithJournal: # Hybrid模式配置
7 selector:
8 matchLabels:
9 iomesh.com/bd-driverType: SSD
10 dataStoreWithJournal: # All-Flash模式配置
11 selector:
12 matchLabels:
13 iomesh.com/bd-driverType: SSD
-
安装IOMesh
1./helm install iomesh ./charts/iomesh \
2 --create-namespace \
3 --namespace iomesh-system \
4 --values iomesh.yaml \
5 --wait
四、磁盘管理
-
查看磁盘状态
1kubectl -n iomesh-system get blockdevice
-
标记磁盘类型
1# 标记缓存盘
2kubectl label blockdevice <blockdevice-name> iomesh-system/disk=SSD -n iomesh-system
3
4# 标记数据盘
5kubectl label blockdevice <blockdevice-name> iomesh-system/disk=HDD -n iomesh-system
-
申领磁盘
1./helm -n iomesh-system upgrade iomesh charts/iomesh -f iomesh.yaml
五、存储配置
-
StorageClass示例
1apiVersion: storage.k8s.io/v1
2kind: StorageClass
3metadata:
4 name: iomesh-sc
5provisioner: com.iomesh.csi-driver
6reclaimPolicy: Retain
7parameters:
8 replicaFactor: "2"
9 thinProvision: "true"
-
创建PVC
1apiVersion: v1
2kind: PersistentVolumeClaim
3metadata:
4 name: demo-pvc
5spec:
6 storageClassName: iomesh-sc
7 accessModes: [ReadWriteOnce]
8 resources:
9 requests:
10 storage: 100Gi
六、运维监控
-
查看集群状态
1kubectl get iomeshclusters.iomesh.com -n iomesh-system -o yaml
-
关键指标
1status:
2 summary:
3 clusterSummary:
4 spaceInfo:
5 totalDataCapacity: 24.66Ti # 总存储容量
6 usedDataSpace: 11.50Gi # 已用空间
7 metaSummary:
8 leader: 10.211.5.11:10100 # Meta服务Leader节点
七、故障排查
-
Pod挂载PVC失败
Error: Failed to load module tcp
解决方案:
1# 确认iscsi_tcp模块加载
2lsmod | grep iscsi_tcp
3modprobe iscsi_tcp
4
5# 检查iscsid服务状态
6systemctl status iscsid
-
磁盘未Claimed
- 检查
iomesh.yaml
设备选择器配置
- 确认磁盘标签是否正确
八、卸载IOMesh
1./helm uninstall -n iomesh-system iomesh
2# 清理残留资源(谨慎操作!)
3kubectl delete ns iomesh-system
九、 参考
十、 和 longhorn 的对比
维度 |
IOMesh 优势 |
Longhorn 优势 |
性能 |
高 IOPS、低延迟 |
轻量级,适合中等负载 |
集成性 |
企业级功能丰富 |
与 Kubernetes 深度集成 |
成本 |
高(商业授权+硬件) |
低(开源免费) |
易用性 |
复杂,需专业运维 |
简单,适合云原生新手 |
适用场景 |
核心生产系统 |
实验环境、边缘计算 |
稳定性与性能优先选 IOMesh,灵活性与成本优先选 Longhorn。