Ceph-เจ…เจงเจพเจฐเจฟเจค เจธเจŸเฉ‹เจฐเฉ‡เจœ เจจเฉ‚เฉฐ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจจเจพเจฒ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจ‡เฉฑเจ• เจตเจฟเจนเจพเจฐเจ• เจ‰เจฆเจพเจนเจฐเจฃ

เจ•เฉฐเจŸเฉ‡เจจเจฐ เจธเจŸเฉ‹เจฐเฉ‡เจœเจผ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ (CSI) เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ…เจคเฉ‡ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจชเฉเจฐเจฃเจพเจฒเฉ€เจ†เจ‚ เจตเจฟเจšเจ•เจพเจฐ เจ‡เฉฑเจ• เจฏเฉ‚เจจเฉ€เจซเจพเจˆเจก เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš เจ—เฉฑเจฒ เจ•เจฐ เจšเฉเฉฑเจ•เฉ‡ เจนเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉฑเจธเจฟเจ†, เจ…เจคเฉ‡ เจ…เฉฑเจœ เจ…เจธเฉ€เจ‚ CSI เจ…เจคเฉ‡ Ceph เจฆเฉ‡ เจธเฉเจฎเฉ‡เจฒ 'เจคเฉ‡ เจกเฉ‚เฉฐเจ˜เจพเจˆ เจจเจพเจฒ เจตเจฟเจšเจพเจฐ เจ•เจฐเจพเจ‚เจ—เฉ‡: เจ…เจธเฉ€เจ‚ เจฆเจฟเจ–เจพเจตเจพเจ‚เจ—เฉ‡ เจ•เจฟ เจ•เจฟเจตเฉ‡เจ‚ Ceph เจธเจŸเฉ‹เจฐเฉ‡เจœ เจจเฉ‚เฉฐ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเฉ‹ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‚เฉฐเฅค
เจฒเฉ‡เจ– เจ…เจธเจฒ, เจญเจพเจตเฉ‡เจ‚ เจ•เจฟ เจธเจฎเจ เจฆเฉ€ เจธเฉŒเจ– เจฒเจˆ เจฅเฉ‹เฉœเฉเจนเฉ‡ เจœเจฟเจนเฉ‡ เจธเจฐเจฒ เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ Ceph เจ…เจคเฉ‡ Kubernetes เจ•เจฒเฉฑเจธเจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ…เจคเฉ‡ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจตเจฟเจšเจพเจฐ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

เจ•เฉ€ เจคเฉเจธเฉ€เจ‚ เจนเฉˆเจฐเจพเจจ เจนเฉ‹ เจฐเจนเฉ‡ เจนเฉ‹ เจ•เจฟ เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ?

Ceph-เจ…เจงเจพเจฐเจฟเจค เจธเจŸเฉ‹เจฐเฉ‡เจœ เจจเฉ‚เฉฐ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจจเจพเจฒ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจ‡เฉฑเจ• เจตเจฟเจนเจพเจฐเจ• เจ‰เจฆเจพเจนเจฐเจฃ

เจ‡เจธ เจฒเจˆ, เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจ‰เจ‚เจ—เจฒเจพเจ‚ 'เจคเฉ‡ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจนเฉˆ, เจคเฉˆเจจเจพเจค, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, kubespray. เจจเฉ‡เฉœเฉ‡ เจ•เฉฐเจฎ เจ•เจฐ เจฐเจฟเจนเจพ เจ‡เฉฑเจ• Ceph เจ•เจฒเฉฑเจธเจŸเจฐ เจนเฉˆ - เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฐเจธเจŸเจพเจฒ เจตเฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เจธเจฆเฉ‡ เจจเจพเจฒ เจชเจฒเฉ‡เจฌเฉเฉฑเจ• เจฆเจพ เจ‡เฉฑเจ• เจธเฉˆเฉฑเจŸ. เจฎเฉˆเจ‚ เจ‰เจฎเฉ€เจฆ เจ•เจฐเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจ‡เจน เจฆเฉฑเจธเจฃ เจฆเฉ€ เจ•เฉ‹เจˆ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ เจ•เจฟ เจ‰เจนเจจเจพเจ‚ เจตเจฟเจšเจ•เจพเจฐ เจ‰เจคเจชเจพเจฆเจจ เจฒเจˆ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ 10 Gbit/s เจฆเฉ€ เจฌเฉˆเจ‚เจกเจตเจฟเจกเจฅ เจตเจพเจฒเจพ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

เจœเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เจน เจธเจญ เจนเฉˆ, เจคเจพเจ‚ เจšเจฒเฉ‹!

เจชเจนเจฟเจฒเจพเจ‚, เจ†เจ“ Ceph เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‹เจกเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• 'เจคเฉ‡ เจšเฉฑเจฒเฉ€เจ เจ…เจคเฉ‡ เจœเจพเจ‚เจš เจ•เจฐเฉ€เจ เจ•เจฟ เจธเจญ เจ•เฉเจ เจ•เฉเจฐเจฎ เจตเจฟเฉฑเจš เจนเฉˆ:

ceph health
ceph -s

เจ…เฉฑเจ—เฉ‡, เจ…เจธเฉ€เจ‚ เจคเฉเจฐเฉฐเจค RBD เจกเจฟเจธเจ•เจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจชเฉ‚เจฒ เจฌเจฃเจพเจตเจพเจ‚เจ—เฉ‡:

ceph osd pool create kube 32
ceph osd pool application enable kube rbd

เจšเจฒเฉ‹ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเฉฑเจฒ เจตเจงเจฆเฉ‡ เจนเจพเจ‚เฅค เจ‰เฉฑเจฅเฉ‡, เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจ…เจธเฉ€เจ‚ RBD เจฒเจˆ Ceph CSI เจกเจฐเจพเจˆเจตเจฐ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค เจ…เจธเฉ€เจ‚ เจนเฉˆเจฒเจฎ เจฆเฉเจ†เจฐเจพ, เจ‰เจฎเฉ€เจฆ เจ…เจจเฉเจธเจพเจฐ, เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค
เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจšเจพเจฐเจŸ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจœเฉ‹เฉœเจฆเฉ‡ เจนเจพเจ‚, เจธเจพเจจเฉ‚เฉฐ ceph-csi-rbd เจšเจพเจฐเจŸ เจฒเจˆ เจตเฉ‡เจฐเฉ€เจเจฌเจฒเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเฉˆเฉฑเจŸ เจฎเจฟเจฒเจฆเจพ เจนเฉˆ:

helm repo add ceph-csi https://ceph.github.io/csi-charts
helm inspect values ceph-csi/ceph-csi-rbd > cephrbd.yml

เจนเฉเจฃ เจคเฉเจนเจพเจจเฉ‚เฉฐ cephrbd.yml เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจญเจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, Ceph เจตเจฟเฉฑเจš เจฎเจพเจจเฉ€เจŸเจฐเจพเจ‚ เจฆเฉ‡ เจ•เจฒเฉฑเจธเจŸเจฐ ID เจ…เจคเฉ‡ IP เจชเจคเฉ‡ เจฒเฉฑเจญเฉ‹:

ceph fsid  # ั‚ะฐะบ ะผั‹ ัƒะทะฝะฐะตะผ clusterID
ceph mon dump  # ะฐ ั‚ะฐะบ ัƒะฒะธะดะธะผ IP-ะฐะดั€ะตัะฐ ะผะพะฝะธั‚ะพั€ะพะฒ

เจ…เจธเฉ€เจ‚ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเฉ‡ เจฎเฉเฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ cephrbd.yml เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจฆเจพเจ–เจฒ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ‰เจธเฉ‡ เจธเจฎเฉ‡เจ‚, เจ…เจธเฉ€เจ‚ PSP เจจเฉ€เจคเฉ€เจ†เจ‚ (เจชเฉ‹เจก เจธเฉเจฐเฉฑเจ–เจฟเจ† เจจเฉ€เจคเฉ€เจ†เจ‚) เจฌเจฃเจพเจ‰เจฃ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจญเจพเจ—เจพเจ‚ เจตเจฟเฉฑเจš เจตเจฟเจ•เจฒเจช nodeplugin ะธ เจชเฉเจฐเฉ‹เจตเฉ€เจœเจผเจจเจฐ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš, เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉ‡เจ เจพเจ‚ เจฆเจฐเจธเจพเจ เจ…เจจเฉเจธเจพเจฐ เจ เฉ€เจ• เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ:

csiConfig:
  - clusterID: "bcd0d202-fba8-4352-b25d-75c89258d5ab"
    monitors:
      - "v2:172.18.8.5:3300/0,v1:172.18.8.5:6789/0"
      - "v2:172.18.8.6:3300/0,v1:172.18.8.6:6789/0"
      - "v2:172.18.8.7:3300/0,v1:172.18.8.7:6789/0"

nodeplugin:
  podSecurityPolicy:
    enabled: true

provisioner:
  podSecurityPolicy:
    enabled: true

เจ…เฉฑเจ—เฉ‡, เจธเจพเจกเฉ‡ เจฒเจˆ เจฌเจพเจ•เฉ€ เจฌเจšเจฆเจพ เจนเฉˆ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจšเจพเจฐเจŸ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจเจพเฅค

helm upgrade -i ceph-csi-rbd ceph-csi/ceph-csi-rbd -f cephrbd.yml -n ceph-csi-rbd --create-namespace

เจฌเจนเฉเจค เจตเจงเฉ€เจ†, RBD เจกเจฐเจพเจˆเจตเจฐ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ!
เจ†เจ“ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจ•เจฒเจพเจธ เจฌเจฃเจพเจˆเจเฅค เจ‡เจธ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ Ceph เจจเจพเจฒ เจฅเฉ‹เฉœเจพ เจœเจฟเจนเจพ เจŸเจฟเฉฐเจ•เจฐเจฟเฉฐเจ— เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจ…เจธเฉ€เจ‚ Ceph เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ‰เจธเจจเฉ‚เฉฐ เจชเฉ‚เจฒ เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฃ เจฆเฉ‡ เจ…เจงเจฟเจ•เจพเจฐ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟubeเจฌ:

ceph auth get-or-create client.rbdkube mon 'profile rbd' osd 'profile rbd pool=kube'

เจนเฉเจฃ เจฆเฉ‡เจ–เฉ€เจ เจ•เจฟ เจเจ•เจธเฉˆเจธ เจ•เฉเฉฐเจœเฉ€ เจ…เจœเฉ‡ เจตเฉ€ เจ‰เฉฑเจฅเฉ‡ เจนเฉˆ:

ceph auth get-key client.rbdkube

เจ•เจฎเจพเจ‚เจก เจ•เฉเจ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจ•เจฐเฉ‡เจ—เฉ€:

AQCO9NJbhYipKRAAMqZsnqqS/T8OYQX20xIa9A==

เจ†เจ‰ เจ‡เจธ เจฎเฉเฉฑเจฒ เจจเฉ‚เฉฐ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจธเฉ€เจ•เจฐเฉ‡เจŸ เจตเจฟเฉฑเจš เจœเฉ‹เฉœเฉ€เจ - เจœเจฟเฉฑเจฅเฉ‡ เจธเจพเจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ userKey:

---
apiVersion: v1
kind: Secret
metadata:
  name: csi-rbd-secret
  namespace: ceph-csi-rbd
stringData:
  # ะ—ะฝะฐั‡ะตะฝะธั ะบะปัŽั‡ะตะน ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‚ ะธะผะตะฝะธ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปั ะธ ะตะณะพ ะบะปัŽั‡ัƒ, ะบะฐะบ ัƒะบะฐะทะฐะฝะพ ะฒ
  # ะบะปะฐัั‚ะตั€ะต Ceph. ID ัŽะทะตั€ะฐ ะดะพะปะถะตะฝ ะธะผะตั‚ัŒ ะดะพัั‚ัƒะฟ ะบ ะฟัƒะปัƒ,
  # ัƒะบะฐะทะฐะฝะฝะพะผัƒ ะฒ storage class
  userID: rbdkube
  userKey: <user-key>

เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเจพ เจฐเจพเจœเจผ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚:

kubectl apply -f secret.yaml

เจ…เฉฑเจ—เฉ‡, เจธเจพเจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจ•เจฒเจพเจธ เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚:

---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
   name: csi-rbd-sc
provisioner: rbd.csi.ceph.com
parameters:
   clusterID: <cluster-id>
   pool: kube

   imageFeatures: layering

   # ะญั‚ะธ ัะตะบั€ะตั‚ั‹ ะดะพะปะถะฝั‹ ัะพะดะตั€ะถะฐั‚ัŒ ะดะฐะฝะฝั‹ะต ะดะปั ะฐะฒั‚ะพั€ะธะทะฐั†ะธะธ
   # ะฒ ะฒะฐัˆ ะฟัƒะป.
   csi.storage.k8s.io/provisioner-secret-name: csi-rbd-secret
   csi.storage.k8s.io/provisioner-secret-namespace: ceph-csi-rbd
   csi.storage.k8s.io/controller-expand-secret-name: csi-rbd-secret
   csi.storage.k8s.io/controller-expand-secret-namespace: ceph-csi-rbd
   csi.storage.k8s.io/node-stage-secret-name: csi-rbd-secret
   csi.storage.k8s.io/node-stage-secret-namespace: ceph-csi-rbd

   csi.storage.k8s.io/fstype: ext4

reclaimPolicy: Delete
allowVolumeExpansion: true
mountOptions:
  - discard

เจญเจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ clusterID, เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจŸเฉ€เจฎ เจฆเฉเจ†เจฐเจพ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจธเจฟเฉฑเจ– เจšเฉเฉฑเจ•เฉ‡ เจนเจพเจ‚ ceph fsid, เจ…เจคเฉ‡ เจ‡เจธ เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจจเฉ‚เฉฐ Kubernetes เจ•เจฒเฉฑเจธเจŸเจฐ 'เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจ•เจฐเฉ‹:

kubectl apply -f storageclass.yaml

เจ‡เจน เจฆเฉ‡เจ–เจฃ เจฒเจˆ เจ•เจฟ เจ•เจฒเฉฑเจธเจŸเจฐ เจ‡เจ•เฉฑเจ เฉ‡ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจ†เจ“ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ PVC (เจชเจฐเจธเจฟเจธเจŸเฉˆเจ‚เจŸ เจตเจพเจฒเจฟเจŠเจฎ เจ•เจฒเฉ‡เจฎ) เจจเฉ‚เฉฐ เจฌเจฃเจพเจˆเจ:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: rbd-pvc
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: csi-rbd-sc

เจ†เจ“ เจคเฉเจฐเฉฐเจค เจฆเฉ‡เจ–เฉ€เจ เจ•เจฟ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจจเฉ‡ เจธเฉ‡เจซ เจตเจฟเฉฑเจš เจฌเฉ‡เจจเจคเฉ€ เจ•เฉ€เจคเฉ€ เจตเจพเจฒเฉ€เจ…เจฎ เจ•เจฟเจตเฉ‡เจ‚ เจฌเจฃเจพเจˆ:

kubectl get pvc
kubectl get pv

เจธเจญ เจ•เฉเจ เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจฒเฉฑเจ—เจฆเจพ เจนเฉˆ! เจ‡เจน เจธเฉ‡เจซ เจตเจพเจฒเฉ‡ เจชเจพเจธเฉ‡ เจ•เจฟเจนเฉ‹ เจœเจฟเจนเจพ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ?
เจธเจพเจจเฉ‚เฉฐ เจชเฉ‚เจฒ เจตเจฟเฉฑเจš เจตเจพเจฒเฉ€เจ…เจฎ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉ‚เจšเฉ€ เจฎเจฟเจฒเจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจธเจพเจกเฉ‡ เจตเจพเจฒเฉ€เจ…เจฎ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚:

rbd ls -p kube
rbd -p kube info csi-vol-eb3d257d-8c6c-11ea-bff5-6235e7640653  # ั‚ัƒั‚, ะบะพะฝะตั‡ะฝะพ ะถะต, ะฑัƒะดะตั‚ ะดั€ัƒะณะพะน ID ั‚ะพะผะฐ, ะบะพั‚ะพั€ั‹ะน ะฒั‹ะดะฐะปะฐ ะฟั€ะตะดั‹ะดัƒั‰ะฐั ะบะพะผะฐะฝะดะฐ

เจนเฉเจฃ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ‡เฉฑเจ• RBD เจตเจพเจฒเฉ€เจ…เจฎ เจฆเจพ เจ†เจ•เจพเจฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
pvc.yaml เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจตเจฟเฉฑเจš เจตเจพเจฒเฉ€เจ…เจฎ เจฆเจพ เจ†เจ•เจพเจฐ 2Gi เจตเจฟเฉฑเจš เจฌเจฆเจฒเฉ‹ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเฉ‹:

kubectl apply -f pvc.yaml

เจ†เจ‰ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจฆเฉ‡ เจชเฉเจฐเจญเจพเจตเฉ€ เจนเฉ‹เจฃ เจฆเฉ€ เจ‰เจกเฉ€เจ• เจ•เจฐเฉ€เจ เจ…เจคเฉ‡ เจตเจพเจฒเฉ€เจ…เจฎ เจ†เจ•เจพเจฐ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจตเฉ‡เจ–เฉ€เจเฅค

rbd -p kube info csi-vol-eb3d257d-8c6c-11ea-bff5-6235e7640653

kubectl get pv
kubectl get pvc

เจ…เจธเฉ€เจ‚ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจชเฉ€เจตเฉ€เจธเฉ€ เจฆเจพ เจ†เจ•เจพเจฐ เจฌเจฆเจฒเจฟเจ† เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ‡เจน เจชเจคเจพ เจ•เจฐเจจ เจฒเจˆ เจ•เจฟ เจ•เจฟเจ‰เจ‚, เจคเฉเจธเฉ€เจ‚ PVC เจฆเฉ‡ YAML เจตเจฐเจฃเจจ เจฒเจˆ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจคเฉ‹เจ‚ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

kubectl get pvc rbd-pvc -o yaml

เจ‡เฉฑเจฅเฉ‡ เจธเจฎเฉฑเจธเจฟเจ† เจนเฉˆ:

เจธเฉเจจเฉ‡เจนเจพ: เจจเฉ‹เจก 'เจคเฉ‡ เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจ†เจ•เจพเจฐ เจฆเฉ‡เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจชเฉŒเจก (เจฎเฉเฉœ) เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฒเจˆ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ€ เจ‰เจกเฉ€เจ• เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆเฅค เจ•เจฟเจธเจฎ: FileSystemResizePending

เจญเจพเจต, เจกเจฟเจธเจ• เจตเจง เจ—เจˆ เจนเฉˆ, เจชเจฐ เจ‡เจธ เจ‰เฉฑเจคเฉ‡ เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจจเจนเฉ€เจ‚ เจนเฉˆ.
เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจตเจงเจพเจ‰เจฃ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจตเจพเจฒเฉ€เจ…เจฎ เจฎเจพเจŠเจ‚เจŸ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจธเจพเจกเฉ‡ เจฆเฉ‡เจธเจผ เจตเจฟเฉฑเจš, เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† PVC/PV เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจš เจ•เจฟเจธเฉ‡ เจตเฉ€ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจตเจฐเจคเจฟเจ† เจจเจนเฉ€เจ‚ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจŸเฉˆเจธเจŸ เจชเฉ‹เจก เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚:

---
apiVersion: v1
kind: Pod
metadata:
  name: csi-rbd-demo-pod
spec:
  containers:
    - name: web-server
      image: nginx:1.17.6
      volumeMounts:
        - name: mypvc
          mountPath: /data
  volumes:
    - name: mypvc
      persistentVolumeClaim:
        claimName: rbd-pvc
        readOnly: false

เจ…เจคเฉ‡ เจนเฉเจฃ เจ†เจ“ เจชเฉ€เจตเฉ€เจธเฉ€ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เฉ€เจ:

kubectl get pvc

เจ†เจ•เจพเจฐ เจฌเจฆเจฒ เจ—เจฟเจ† เจนเฉˆ, เจธเจญ เจ•เฉเจ เจ เฉ€เจ• เจนเฉˆ.

เจชเจนเจฟเจฒเฉ‡ เจนเจฟเฉฑเจธเฉ‡ เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ RBD เจฌเจฒเจพเจ• เจกเจฟเจตเจพเจˆเจธ (เจ‡เจน Rados เจฌเจฒเจพเจ• เจกเจฟเจตเจพเจˆเจธ เจฒเจˆ เจนเฉˆ) เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เฉ€เจคเจพ เจนเฉˆ, เจชเจฐ เจ‡เจน เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจœเฉ‡เจ•เจฐ เจตเฉฑเจ–-เจตเฉฑเจ– เจฎเจพเจˆเจ•เฉเจฐเฉ‹ เจธเจฐเจตเจฟเจธเจฟเจœเจผ เจจเฉ‚เฉฐ เจ‡เจธ เจกเจฟเจธเจ• เจจเจพเจฒ เจ‡เฉฑเจ•เฉ‹ เจธเจฎเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค CephFS เจกเจฟเจธเจ• เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจฆเฉ€ เจฌเจœเจพเจ เจซเจพเจˆเจฒเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจ…เจจเฉเจ•เฉ‚เจฒ เจนเฉˆ.
Ceph เจ…เจคเฉ‡ Kubernetes เจ•เจฒเฉฑเจธเจŸเจฐเจพเจ‚ เจฆเฉ€ เจ‰เจฆเจพเจนเจฐเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจ…เจธเฉ€เจ‚ CephFS เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ CSI เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจœเจผเจฐเฉ‚เจฐเฉ€ เจธเฉฐเจธเจฅเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

เจ†เจ“ เจจเจตเฉ‡เจ‚ เจนเฉˆเจฒเจฎ เจšเจพเจฐเจŸ เจคเฉ‹เจ‚ เจฎเฉเฉฑเจฒ เจชเฉเจฐเจพเจชเจค เจ•เจฐเฉ€เจ เจœเจฟเจธ เจฆเฉ€ เจธเจพเจจเฉ‚เฉฐ เจฒเฉ‹เฉœ เจนเฉˆ:

helm inspect values ceph-csi/ceph-csi-cephfs > cephfs.yml

เจฆเฉเจฌเจพเจฐเจพ เจคเฉเจนเจพเจจเฉ‚เฉฐ cephfs.yml เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจญเจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจชเจนเจฟเจฒเจพเจ‚ เจตเจพเจ‚เจ—, Ceph เจนเฉเจ•เจฎ เจฎเจฆเจฆ เจ•เจฐเจจเจ—เฉ‡:

ceph fsid
ceph mon dump

เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ‡ เจฎเฉเฉฑเจฒเจพเจ‚ เจจเจพเจฒ เจญเจฐเฉ‹:

csiConfig:
  - clusterID: "bcd0d202-fba8-4352-b25d-75c89258d5ab"
    monitors:
      - "172.18.8.5:6789"
      - "172.18.8.6:6789"
      - "172.18.8.7:6789"

nodeplugin:
  httpMetrics:
    enabled: true
    containerPort: 8091
  podSecurityPolicy:
    enabled: true

provisioner:
  replicaCount: 1
  podSecurityPolicy:
    enabled: true

เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจงเจฟเจ†เจจ เจฆเจฟเจ“ เจ•เจฟ เจฎเจพเจจเฉ€เจŸเจฐ เจชเจคเฉ‡ เจธเจงเจพเจฐเจจ เจซเจพเจฐเจฎ เจเจกเจฐเฉˆเฉฑเจธ:เจชเฉ‹เจฐเจŸ เจตเจฟเฉฑเจš เจฆเจฟเฉฑเจคเฉ‡ เจ—เจ เจนเจจเฅค เจจเฉ‹เจก 'เจคเฉ‡ cephfs เจจเฉ‚เฉฐ เจฎเจพเจŠเจ‚เจŸ เจ•เจฐเจจ เจฒเจˆ, เจ‡เจน เจเจกเจฐเฉˆเฉฑเจธ เจ•เจฐเจจเจฒ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเฉ‚เฉฐ เจฆเจฟเฉฑเจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ, เจœเฉ‹ เจ…เจœเฉ‡ เจคเฉฑเจ• เจ‡เจน เจจเจนเฉ€เจ‚ เจœเจพเจฃเจฆเฉ‡ เจ•เจฟ v2 เจฎเจพเจจเฉ€เจŸเจฐ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจนเฉˆเฅค
เจ…เจธเฉ€เจ‚ httpMetrics เจฒเจˆ เจชเฉ‹เจฐเจŸ เจฌเจฆเจฒเจฆเฉ‡ เจนเจพเจ‚ (เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจจ เจฒเจˆ เจ‰เฉฑเจฅเฉ‡ เจœเจพเจตเฉ‡เจ—เจพ) เจคเจพเจ‚ เจœเฉ‹ เจ‡เจน nginx-proxy เจจเจพเจฒ เจŸเจ•เจฐเจพ เจจเจพ เจ•เจฐเฉ‡, เจœเฉ‹ เจ•เจฟ Kubespray เจฆเฉเจ†เจฐเจพ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉ‹ เจธเจ•เจฆเฉ€เฅค

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจนเฉˆเจฒเจฎ เจšเจพเจฐเจŸ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹:

helm upgrade -i ceph-csi-cephfs ceph-csi/ceph-csi-cephfs -f cephfs.yml -n ceph-csi-cephfs --create-namespace

เจšเจฒเฉ‹ เจ‰เฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ Ceph เจกเฉ‡เจŸเจพ เจธเจŸเฉ‹เจฐ 'เจคเฉ‡ เจšเฉฑเจฒเฉ€เจเฅค เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจฆเฉฑเจธเจฆเจพ เจนเฉˆ เจ•เจฟ CephFS เจชเฉเจฐเฉ‹เจตเฉ€เจœเจผเจจเจฐ เจจเฉ‚เฉฐ เจ•เจฒเฉฑเจธเจŸเจฐ เจชเฉเจฐเจธเจผเจพเจธเจ• เจชเจนเฉเฉฐเจš เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจชเจฐ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฌเจฃเจพเจตเจพเจ‚เจ—เฉ‡ fs เจธเฉ€เจฎเจค เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจจเจพเจฒ:

ceph auth get-or-create client.fs mon 'allow r' mgr 'allow rw' mds 'allow rws' osd 'allow rw pool=cephfs_data, allow rw pool=cephfs_metadata'

เจ…เจคเฉ‡ เจ†เจ“ เจคเฉเจฐเฉฐเจค เจ‰เจธเจฆเฉ€ เจชเจนเฉเฉฐเจš เจ•เฉเฉฐเจœเฉ€ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เฉ€เจ, เจธเจพเจจเฉ‚เฉฐ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจ‡เจธเจฆเฉ€ เจฒเฉ‹เฉœ เจชเจตเฉ‡เจ—เฉ€:

ceph auth get-key client.fs

เจ†เจ“ เจตเฉฑเจ–เจฐเจพ เจธเฉ€เจ•เจฐเฉ‡เจŸ เจ…เจคเฉ‡ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจ•เจฒเจพเจธ เจฌเจฃเจพเจˆเจเฅค
เจ•เฉเจ เจจเจตเจพเจ‚ เจจเจนเฉ€เจ‚, เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ RBD เจฆเฉ€ เจ‰เจฆเจพเจนเจฐเจฃ เจตเจฟเฉฑเจš เจฆเฉ‡เจ–เจฟเจ† เจนเฉˆ:

---
apiVersion: v1
kind: Secret
metadata:
  name: csi-cephfs-secret
  namespace: ceph-csi-cephfs
stringData:
  # ะะตะพะฑั…ะพะดะธะผะพ ะดะปั ะดะธะฝะฐะผะธั‡ะตัะบะธ ัะพะทะดะฐะฒะฐะตะผั‹ั… ั‚ะพะผะพะฒ
  adminID: fs
  adminKey: <ะฒั‹ะฒะพะด ะฟั€ะตะดั‹ะดัƒั‰ะตะน ะบะพะผะฐะฝะดั‹>

เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ:

kubectl apply -f secret.yaml

เจ…เจคเฉ‡ เจนเฉเจฃ - เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ€ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจ•เจฒเจพเจธ:

---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: csi-cephfs-sc
provisioner: cephfs.csi.ceph.com
parameters:
  clusterID: <cluster-id>

  # ะ˜ะผั ั„ะฐะนะปะพะฒะพะน ัะธัั‚ะตะผั‹ CephFS, ะฒ ะบะพั‚ะพั€ะพะน ะฑัƒะดะตั‚ ัะพะทะดะฐะฝ ั‚ะพะผ
  fsName: cephfs

  # (ะฝะตะพะฑัะทะฐั‚ะตะปัŒะฝะพ) ะŸัƒะป Ceph, ะฒ ะบะพั‚ะพั€ะพะผ ะฑัƒะดัƒั‚ ั…ั€ะฐะฝะธั‚ัŒัั ะดะฐะฝะฝั‹ะต ั‚ะพะผะฐ
  # pool: cephfs_data

  # (ะฝะตะพะฑัะทะฐั‚ะตะปัŒะฝะพ) ะ ะฐะทะดะตะปะตะฝะฝั‹ะต ะทะฐะฟัั‚ั‹ะผะธ ะพะฟั†ะธะธ ะผะพะฝั‚ะธั€ะพะฒะฐะฝะธั ะดะปั Ceph-fuse
  # ะฝะฐะฟั€ะธะผะตั€:
  # fuseMountOptions: debug

  # (ะฝะตะพะฑัะทะฐั‚ะตะปัŒะฝะพ) ะ ะฐะทะดะตะปะตะฝะฝั‹ะต ะทะฐะฟัั‚ั‹ะผะธ ะพะฟั†ะธะธ ะผะพะฝั‚ะธั€ะพะฒะฐะฝะธั CephFS ะดะปั ัะดั€ะฐ
  # ะกะผ. man mount.ceph ั‡ั‚ะพะฑั‹ ัƒะทะฝะฐั‚ัŒ ัะฟะธัะพะบ ัั‚ะธั… ะพะฟั†ะธะน. ะะฐะฟั€ะธะผะตั€:
  # kernelMountOptions: readdir_max_bytes=1048576,norbytes

  # ะกะตะบั€ะตั‚ั‹ ะดะพะปะถะฝั‹ ัะพะดะตั€ะถะฐั‚ัŒ ะดะพัั‚ัƒะฟั‹ ะดะปั ะฐะดะผะธะฝะฐ ะธ/ะธะปะธ ัŽะทะตั€ะฐ Ceph.
  csi.storage.k8s.io/provisioner-secret-name: csi-cephfs-secret
  csi.storage.k8s.io/provisioner-secret-namespace: ceph-csi-cephfs
  csi.storage.k8s.io/controller-expand-secret-name: csi-cephfs-secret
  csi.storage.k8s.io/controller-expand-secret-namespace: ceph-csi-cephfs
  csi.storage.k8s.io/node-stage-secret-name: csi-cephfs-secret
  csi.storage.k8s.io/node-stage-secret-namespace: ceph-csi-cephfs

  # (ะฝะตะพะฑัะทะฐั‚ะตะปัŒะฝะพ) ะ”ั€ะฐะนะฒะตั€ ะผะพะถะตั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะปะธะฑะพ ceph-fuse (fuse), 
  # ะปะธะฑะพ ceph kernelclient (kernel).
  # ะ•ัะปะธ ะฝะต ัƒะบะฐะทะฐะฝะพ, ะฑัƒะดะตั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒัั ะผะพะฝั‚ะธั€ะพะฒะฐะฝะธะต ั‚ะพะผะพะฒ ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ,
  # ัั‚ะพ ะพะฟั€ะตะดะตะปัะตั‚ัั ะฟะพะธัะบะพะผ ceph-fuse ะธ mount.ceph
  # mounter: kernel
reclaimPolicy: Delete
allowVolumeExpansion: true
mountOptions:
  - debug

เจ†เจ“ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจฅเฉ‡ เจญเจฐเฉ€เจ clusterID เจ…เจคเฉ‡ Kubernetes เจตเจฟเฉฑเจš เจฒเจพเจ—เฉ‚:

kubectl apply -f storageclass.yaml

เจจเจฟเจฐเฉ€เจ–เจฃ

เจœเจพเจ‚เจš เจ•เจฐเจจ เจฒเจˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจชเจฟเจ›เจฒเฉ€ เจ‰เจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจš, เจ†เจ“ เจ‡เฉฑเจ• เจชเฉ€เจตเฉ€เจธเฉ€ เจฌเจฃเจพเจˆเจ:

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: csi-cephfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  storageClassName: csi-cephfs-sc

เจ…เจคเฉ‡ เจชเฉ€เจตเฉ€เจธเฉ€/เจชเฉ€เจตเฉ€ เจฆเฉ€ เจฎเฉŒเจœเฉ‚เจฆเจ—เฉ€ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเฉ‹:

kubectl get pvc
kubectl get pv

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ CephFS เจตเจฟเฉฑเจš เจซเจพเจˆเจฒเจพเจ‚ เจ…เจคเฉ‡ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจ•เจฟเจคเฉ‡ เจฎเจพเจŠเจ‚เจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเจ–เจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ.

เจšเจฒเฉ‹ Ceph เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‹เจกเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• 'เจคเฉ‡ เจšเฉฑเจฒเฉ€เจ เจ…เจคเฉ‡ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ€เจ†เจ‚ เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚ เจ•เจฐเฉ€เจ:

# ะขะพั‡ะบะฐ ะผะพะฝั‚ะธั€ะพะฒะฐะฝะธั
mkdir -p /mnt/cephfs

# ะกะพะทะดะฐั‘ะผ ั„ะฐะนะป ั ะบะปัŽั‡ะพะผ ะฐะดะผะธะฝะธัั‚ั€ะฐั‚ะพั€ะฐ
ceph auth get-key client.admin >/etc/ceph/secret.key

# ะ”ะพะฑะฐะฒะปัะตะผ ะทะฐะฟะธััŒ ะฒ /etc/fstab
# !! ะ˜ะทะผะตะฝัะตะผ ip ะฐะดั€ะตั ะฝะฐ ะฐะดั€ะตั ะฝะฐัˆะตะณะพ ัƒะทะปะฐ
echo "172.18.8.6:6789:/ /mnt/cephfs ceph name=admin,secretfile=/etc/ceph/secret.key,noatime,_netdev    0       2" >> /etc/fstab

mount /mnt/cephfs

เจฌเฉ‡เจธเจผเฉฑเจ•, เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ‡เฉฑเจ• Ceph เจจเฉ‹เจก 'เจคเฉ‡ FS เจจเฉ‚เฉฐ เจฎเจพเจŠเจ‚เจŸ เจ•เจฐเจจเจพ เจธเจฟเจฐเจซเจผ เจธเจฟเจ–เจฒเจพเจˆ เจฆเฉ‡ เจ‰เจฆเฉ‡เจธเจผเจพเจ‚ เจฒเจˆ เจขเฉเจ•เจตเจพเจ‚ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ 'เจคเฉ‡ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจธเจฒเจฐเจฎ เจ•เฉ‹เจฐเจธ. เจฎเฉˆเจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจฒเจ—เจฆเจพ เจ•เจฟ เจ•เฉ‹เจˆ เจตเฉ€ เจ…เจœเจฟเจนเจพ เจ‰เจคเจชเจพเจฆเจจ เจตเจฟเฉฑเจš เจ•เจฐเฉ‡เจ—เจพ; เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจฃ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ—เจฒเจคเฉ€ เจจเจพเจฒ เจฎเจฟเจŸเจพเจ‰เจฃ เจฆเจพ เจ‡เฉฑเจ• เจ‰เฉฑเจš เจœเฉ‹เจ–เจฎ เจนเฉˆ.

เจ…เจคเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจ†เจ“ เจฆเฉ‡เจ–เฉ€เจ เจ•เจฟ CephFS เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจตเจพเจฒเฉ€เจ…เจฎ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจ†เจ•เจพเจฐ เจฆเฉ‡เจฃ เจจเจพเจฒ เจšเฉ€เจœเจผเจพเจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจšเจฒเฉ‹ Kubernetes เจคเฉ‡ เจตเจพเจชเจธ เจ†เจ“ เจ…เจคเฉ‡ PVC เจฒเจˆ เจธเจพเจกเฉ‡ เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐเฉ€เจ - เจ‰เฉฑเจฅเฉ‡ เจ†เจ•เจพเจฐ เจตเจงเจพเจ“, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, 7Gi เจคเฉฑเจ•เฅค

เจšเจฒเฉ‹ เจธเฉฐเจชเจพเจฆเจฟเจค เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเฉ€เจ:

kubectl apply -f pvc.yaml

เจ†เจ‰ เจฎเจพเจŠเจ‚เจŸ เจ•เฉ€เจคเฉ€ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เฉ€เจ เจ•เจฟ เจ•เฉ‹เจŸเจพ เจ•เจฟเจตเฉ‡เจ‚ เจฌเจฆเจฒเจฟเจ† เจนเฉˆ:

getfattr -n ceph.quota.max_bytes <ะบะฐั‚ะฐะปะพะณ-ั-ะดะฐะฝะฝั‹ะผะธ>

เจ‡เจธ เจ•เจฎเจพเจ‚เจก เจฆเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจธเจฟเจธเจŸเจฎ เจ‰เฉฑเจคเฉ‡ เจชเฉˆเจ•เฉ‡เจœ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆ attr.

เจ…เฉฑเจ–เจพเจ‚ เจกเจฐเจฆเฉ€เจ†เจ‚ เจนเจจ, เจชเจฐ เจนเฉฑเจฅ เจ•เจฐเจฆเฉ‡ เจนเจจ

เจ‡เจน เจธเจพเจฐเฉ‡ เจธเจชเฉˆเจฒ เจ…เจคเฉ‡ เจฒเฉฐเจฌเฉ‡ YAML เจชเฉเจฐเจ—เจŸเจพเจตเฉ‡ เจธเจคเฉเจนเจพ 'เจคเฉ‡ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจœเจพเจชเจฆเฉ‡ เจนเจจ, เจชเจฐ เจ…เจญเจฟเจ†เจธ เจตเจฟเฉฑเจš, เจธเจฒเจฐเจฎ เจตเจฟเจฆเจฟเจ†เจฐเจฅเฉ€ เจ‡เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจนเฉเจค เจœเจฒเจฆเฉ€ เจซเฉœ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเจจเฅค
เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเจš เจ…เจธเฉ€เจ‚ เจœเฉฐเจ—เจฒ เจตเจฟเจš เจกเฉ‚เฉฐเจ˜เฉ‡ เจจเจนเฉ€เจ‚ เจ—เจ - เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจ…เจงเจฟเจ•เจพเจฐเจค เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจนเจจ. เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจจเจพเจฒ Ceph เจธเจŸเฉ‹เจฐเฉ‡เจœ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฆเฉ‡ เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เจน เจฒเจฟเฉฐเจ• เจฎเจฆเจฆ เจ•เจฐเจจเจ—เฉ‡:

เจตเจพเจฒเฉ€เจ…เจฎ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเฉ‡ เจ†เจฎ เจธเจฟเจงเจพเจ‚เจค
RBD เจฆเจธเจคเจพเจตเฉ‡เจœเจผ
เจ‡เฉฑเจ• Ceph เจฆเฉเจฐเจฟเจธเจผเจŸเฉ€เจ•เฉ‹เจฃ เจคเฉ‹เจ‚ RBD เจ…เจคเฉ‡ Kubernetes เจจเฉ‚เฉฐ เจเจ•เฉ€เจ•เฉเจฐเจฟเจค เจ•เจฐเจจเจพ
CSI เจฆเฉเจฐเจฟเจธเจผเจŸเฉ€เจ•เฉ‹เจฃ เจคเฉ‹เจ‚ RBD เจ…เจคเฉ‡ Kubernetes เจจเฉ‚เฉฐ เจเจ•เฉ€เจ•เฉเจฐเจฟเจค เจ•เจฐเจจเจพ
เจœเจจเจฐเจฒ CephFS เจฆเจธเจคเจพเจตเฉ‡เจœเจผ
CSI เจฆเฉเจฐเจฟเจธเจผเจŸเฉ€เจ•เฉ‹เจฃ เจคเฉ‹เจ‚ CephFS เจ…เจคเฉ‡ Kubernetes เจจเฉ‚เฉฐ เจเจ•เฉ€เจ•เฉเจฐเจฟเจค เจ•เจฐเจจเจพ

Slurm เจ•เฉ‹เจฐเจธ 'เจคเฉ‡ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฌเฉ‡เจธ เจคเฉเจธเฉ€เจ‚ เจฅเฉ‹เฉœเจพ เจนเฉ‹เจฐ เจ…เฉฑเจ—เฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ…เจธเจฒ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจคเฉˆเจจเจพเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเฉ‹ CephFS เจจเฉ‚เฉฐ เจซเจพเจˆเจฒ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจตเจœเฉ‹เจ‚ เจตเจฐเจคเฉ‡เจ—เจพเฅค GET/POST เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจฆเฉเจ†เจฐเจพ เจคเฉเจธเฉ€เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉ‡เจซ เจคเฉ‹เจ‚ เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจจ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจตเฉ‹เจ—เฉ‡เฅค

เจ…เจคเฉ‡ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจกเจพเจŸเจพ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจตเจฟเฉฑเจš เจตเจงเฉ‡เจฐเฉ‡ เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เจธ เจฒเจˆ เจธเจพเจˆเจจ เจ…เฉฑเจช เจ•เจฐเฉ‹ Ceph 'เจคเฉ‡ เจจเจตเจพเจ‚ เจ•เฉ‹เจฐเจธ. เจœเจฆเฉ‹เจ‚ เจ•เจฟ เจฌเฉ€เจŸเจพ เจŸเฉˆเจธเจŸ เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉˆ, เจ•เฉ‹เจฐเจธ เจจเฉ‚เฉฐ เจ›เฉ‹เจŸ 'เจคเฉ‡ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจฆเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจจเฉ‚เฉฐ เจชเฉเจฐเจญเจพเจตเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจฒเฉ‡เจ– เจฆเฉ‡ เจฒเฉ‡เจ–เจ•: เจ…เจฒเฉˆเจ—เจœเจผเฉˆเจ‚เจกเจฐ เจธเจผเจตเจพเจฒเฉ‹เจต, เจ…เจญเจฟเจ†เจธ เจ‡เฉฐเจœเฉ€เจจเฉ€เจ…เจฐ เจธเจพ Southเจฅเจฌเฉเจฐเจฟเจœ, เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจชเฉเจฐเจธเจผเจพเจธเจ•, เจธเจฒเจฐเจฎ เจ•เฉ‹เจฐเจธเจพเจ‚ เจฆเฉ‡ เจฒเฉ‡เจ–เจ• เจ…เจคเฉ‡ เจตเจฟเจ•เจพเจธเจ•เจพเจฐเฅค

เจธเจฐเฉ‹เจค: www.habr.com