1

我正在尝试使用 OpenEBS 作为 Kubernetes 集群的存储提供程序。OpenEBS 通过 helm 安装在由 Rancher 创建的 5 个节点组成的集群上。它似乎有效,但是我并不真正了解如何配置卷本身。

每个节点由 2 个磁盘创建,逻辑卷跨越这些磁盘。例如:

$ lsblk
NAME                                    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                                       8:0    0   20G  0 disk 
├─sda1                                    8:1    0    1G  0 part /boot
└─sda2                                    8:2    0   19G  0 part 
  ├─centos_intern--rancher--node05-root 253:0    0   50G  0 lvm  /
  └─centos_intern--rancher--node05-swap 253:1    0  7,9G  0 lvm  [SWAP]
sdb                                       8:16   0   80G  0 disk 
└─sdb1                                    8:17   0   80G  0 part 
  ├─centos_intern--rancher--node05-root 253:0    0   50G  0 lvm  /
  └─centos_intern--rancher--node05-home 253:2    0 41,1G  0 lvm  /home

节点设备管理 (NDM) 配置有一个过滤器,不包括loop,fd0,sr0,/dev/ram,/dev/dm-,/dev/md. 到目前为止,一切都很好。

当我们列出 NDM 创建的块设备资源时,它列出了该节点的 2 个资源(其他节点省略)

> kubectl get blockdevice --all-namespaces   
NAMESPACE   NAME                                           NODENAME                SIZE          CLAIMSTATE   STATUS   AGE
openebs     blockdevice-d7d2b90b000a8b2268faf07c9e0f7cc5   intern-rancher-node05   85899345920   Unclaimed    Active   18h
openebs     sparse-e4ea6423e7d139104049e67566a2b634        intern-rancher-node05   10737418240   Unclaimed    Active   18

探索创建的块设备,我们看到它/dev/sdb用作磁盘:

> kubectl describe blockdevice blockdevice-d7d2b90b000a8b2268faf07c9e0f7cc5 -n openebs
Name:         blockdevice-d7d2b90b000a8b2268faf07c9e0f7cc5
  ...
  Node Attributes:
    Node Name:  intern-rancher-node05
  Partitioned:  No
  Path:         /dev/sdb
Status:
  Claim State:  Unclaimed
  State:        Active
Events:         <none>

所以这里停止了我的理解。为什么选择 NDM/dev/sdb而不是/dev/sda?使用的磁盘和不使用的磁盘有什么区别?不应该/dev/sdb因为逻辑卷正在使用它而被跳过?如果我创建一个持久卷,这是否会限制我的逻辑卷 ( /home) 的大小?

此外,如果我创建一个持久卷声明(使用 jiva),则会在 中创建一个持久卷/var/openebs,例如/var/openebs/pvc-cdc4c5a2-89e1-41ed-b9e7-c672f27a8bed. 这是否意味着它根本不使用磁盘,而是将文件系统中的所有内容存储在逻辑卷中?

4

0 回答 0