杂-记录新的分布式存储(iomesh)使用指南

最近公司产品部署到客户公司使用的一款小众些的分布式存储-iomesh, 做下流水账记录

一、环境准备

  1. 硬件要求

    • 每个节点至少需:
      • 1块缓存盘(Cache Disk,推荐SSD)
      • 1块数据盘(Partition Disk)
    • 网络分离(建议存储网络独立,如10.234.1.0/24)
  2. 系统配置

    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集群部署

  1. 要求

    • Kubernetes 1.24+
    • Containerd作为容器运行时
  2. 节点准备

    1# Master节点参与调度(如需)
    2kubectl taint nodes --all node-role.kubernetes.io/control-plane- node-role.kubernetes.io/master-
    

三、IOMesh离线安装

  1. 安装包准备

    1tar -xvf iomesh-offline-v0.11.1.tgz
    2cd iomesh-offline
    3ctr --namespace k8s.io image import ./images/iomesh-offline-images.tar
    
  2. 生成配置文件

    1./helm show values charts/iomesh > iomesh.yaml
    
  3. 关键配置项

     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
    
  4. 安装IOMesh

    1./helm install iomesh ./charts/iomesh \
    2  --create-namespace \
    3  --namespace iomesh-system \
    4  --values iomesh.yaml \
    5  --wait
    

四、磁盘管理

  1. 查看磁盘状态

    1kubectl -n iomesh-system get blockdevice
    
  2. 标记磁盘类型

    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
    
  3. 申领磁盘

    1./helm -n iomesh-system upgrade iomesh charts/iomesh -f iomesh.yaml
    

五、存储配置

  1. 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"
    
  2. 创建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
    

六、运维监控

  1. 查看集群状态

    1kubectl get iomeshclusters.iomesh.com -n iomesh-system -o yaml
    
  2. 关键指标

    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节点
    

七、故障排查

  1. Pod挂载PVC失败

    Error: Failed to load module tcp
    

    解决方案

    1# 确认iscsi_tcp模块加载
    2lsmod | grep iscsi_tcp
    3modprobe iscsi_tcp
    4
    5# 检查iscsid服务状态
    6systemctl status iscsid
    
  2. 磁盘未Claimed

    • 检查iomesh.yaml设备选择器配置
    • 确认磁盘标签是否正确

八、卸载IOMesh

1./helm uninstall -n iomesh-system iomesh
2# 清理残留资源(谨慎操作!)
3kubectl delete ns iomesh-system

九、 参考

十、 和 longhorn 的对比

维度 IOMesh 优势 Longhorn 优势
性能 高 IOPS、低延迟 轻量级,适合中等负载
集成性 企业级功能丰富 与 Kubernetes 深度集成
成本 高(商业授权+硬件) 低(开源免费)
易用性 复杂,需专业运维 简单,适合云原生新手
适用场景 核心生产系统 实验环境、边缘计算

稳定性与性能优先选 IOMesh,灵活性与成本优先选 Longhorn