我正在尝试使用 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
. 这是否意味着它根本不使用磁盘,而是将文件系统中的所有内容存储在逻辑卷中?