
다시 kubernetes에서 저장을 위해 rook-ceph를 실험하고 있습니다. 3개의 노드가 있는데 각 노드에는
/dev/sda2
에 마운트된 로컬 SSD 파티션- 의 NAS 볼륨
/dev/sdb
.
내 루크 구성에서는 두 장치를 자동으로 찾아 OSD로 사용하는 모든 장치를 사용합니다. 여태까지는 그런대로 잘됐다.
내가 하고 싶은 것은 이들을 쿠버네티스에서 두 개의 별도 스토리지 클래스로 처리하는 것입니다. SSD 풀은 빠르지만 작은 반면, NAS 풀은 느리지만 거대합니다. 이렇게 하면 데이터베이스와 같은 IO 집약적인 포드를 SSD 스토리지 클래스에 연결할 수 있고, 파일 서버와 같은 크기가 큰 포드는 NAS 스토리지 클래스에 연결할 수 있습니다.
rook-ceph는 현재 모든 OSD를 동일한 풀에 연결하므로 kubernetes 스토리지 클래스를 통해 특정 OSD를 대상으로 지정할 수 없습니다.
bash-4.4$ ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 0.82942 root default
-7 0.27647 host k8s-storage-1
1 ssd 0.17879 osd.1 up 1.00000 1.00000
5 ssd 0.09769 osd.5 up 1.00000 1.00000
-3 0.27647 host k8s-storage-2
2 ssd 0.17879 osd.2 up 1.00000 1.00000
3 ssd 0.09769 osd.3 up 1.00000 1.00000
-5 0.27647 host k8s-storage-3
0 ssd 0.17879 osd.0 up 1.00000 1.00000
4 ssd 0.09769 osd.4 up 1.00000 1.00000
bash-4.4$ ceph osd status
ID HOST USED AVAIL WR OPS WR DATA RD OPS RD DATA STATE
0 k8s-storage-3 196M 182G 0 0 1 16 exists,up¹
1 k8s-storage-1 374M 182G 0 0 0 0 exists,up¹
2 k8s-storage-2 261M 182G 0 0 1 90 exists,up¹
3 k8s-storage-2 121M 99.8G 0 0 0 0 exists,up²
4 k8s-storage-3 187M 99.8G 0 0 0 0 exists,up²
5 k8s-storage-1 85.3M 99.9G 0 0 0 0 exists,up²
¹local SSD storage
²remote NAS storage (it's just a 100gb for testing purposes)
가능한 솔루션을 찾았습니다. 두 개의 개별 rook-ceph 인스턴스를 deviceFilter
. 하나의 kubernetes-cluster에서 두 개의 rook-ceph-cluster-instance를 실행해야 한다는 단점 때문에 이 솔루션이 마음에 들지 않습니다.
SSD 및 NAS 스토리지를 분리하여 kubernetes 스토리지 클래스에서 독립적으로 타겟팅할 수 있도록 rook-ceph를 얻을 수 있는 방법이 있습니까?
업데이트 1:장치의 저장소 클래스를 수동으로 업데이트할 수 있다는 것을 알았습니다. - 지금 내가 놓치고 있는 유일한 것은 a를 통해 ceph osd crush set-device-class osd.XXX
장치를 대상으로 지정하는 방법입니다 . 여기에 OSD를 넣어야 합니까?kubernetes storageclass
ceph pool
최고야, 라스
답변1
@LarsKumbier cephcluster를 생성하여 OSD 세트에 대해 deviceClasses를 지정할 수 있습니다https://github.com/rook/rook/blob/f70b687a6077877e29ab02b06a881ed2d65c3c78/Documentation/CRDs/Cluster/ceph-cluster-crd.md#osd-configuration-settings https://github.com/rook/rook/blob/f70b687a6077877e29ab02b06a881ed2d65c3c78/Documentation/CRDs/Cluster/ceph-cluster-crd.md#storage-class-device-sets cephfs 및 rbd 풀에 해당 장치 클래스를 사용하고 rbd 풀 및 cephfs 데이터 풀을 가리키는 스토리지 클래스를 생성하시겠습니까? 이렇게 하면 여러 개의 ceph 클러스터가 생성됩니까?