Kubernetes Rook-Ceph: разные пулы для разных случаев использования?

Я снова экспериментирую с rook-ceph в Kubernetes для хранения данных. У меня есть 3 узла, каждый из которых имеет

  • локальный SSD-раздел, смонтированный по адресу/dev/sda2, и
  • NAS-том в/dev/sdb.

В моем рук-конфиге я использую все устройства, которые автоматически находит и использует оба как OSD. Все идет нормально.

Я бы хотел рассматривать их как два отдельных класса хранилища в Kubernetes: ssd-пул быстрый, но маленький, а NAS-пул медленный, но огромный. Таким образом, я мог прикрепить модули с интенсивным вводом-выводом, такие как базы данных, к классу ssd-storage, в то время как модули с большим размером, такие как файловые серверы, были бы прикреплены к классу NAS-storage.

Поскольку в настоящее время rook-ceph присоединяет все OSD к одному и тому же пулу, я не могу настроить таргетинг на конкретные из них через класс хранения Kubernetes:

      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, так что один rook-ceph-cluster использует только SSD, а другой — только NAS-тома. Мне не нравится это решение из-за недостатка необходимости запуска двух экземпляров rook-ceph-cluster-in в одном kubernetes-кластере.

Есть ли способ заставить rook-ceph разделить SSD- и NAS-хранилища, чтобы они могли независимо использоваться классами хранения Kubernetes?


Обновление 1. Я обнаружил, что могу обновить классы хранилища для устройств вручную:ceph osd crush set-device-class osd.XXX- единственное, чего мне сейчас не хватает, это того, как нацеливаться на них сkubernetes storageclassчерезceph pool, в какую (наверное?) OSD надо ставить?

Лучший, Ларс

0 ответов

Другие вопросы по тегам