GNU/Linux >> Belajar Linux >  >> Linux

Menemukan blok dan file konten aplikasi OCP di ODF:Infrastruktur

Red Hat OpenShift Data Foundation—sebelumnya Red Hat OpenShift Container Storage—adalah penyimpanan yang ditentukan perangkat lunak untuk container. Direkayasa sebagai platform layanan data dan penyimpanan untuk Red Hat OpenShift, Red Hat OpenShift Data Foundation (ODF) membantu tim mengembangkan dan menerapkan aplikasi dengan cepat dan efisien di seluruh cloud. Ini adalah solusi kuat yang memungkinkan penyimpanan blok, file, dan objek.

Bagi mereka yang terbiasa dengan solusi penyimpanan tradisional, mungkin pertanyaan yang muncul adalah bagaimana pengguna dapat memetakan di mana objek aplikasi disimpan dalam cluster ODF karena konsep penyimpanan terdistribusi dan skalabel yang dibawa ODF menghadirkan perbedaan yang cukup besar dari yang lain. solusi. Dalam artikel ini, Anda akan menjelajahi bagaimana seseorang dapat melakukan pemetaan ini untuk skenario pemecahan masalah.

Saya memiliki banyak hal untuk dibahas dengan topik ini, jadi isinya dibagi menjadi tiga artikel. Artikel pertama (ini) mengatur panggung dengan mendefinisikan lingkungan dan komponen yang diperlukan. Bagian kedua mencakup informasi penyimpanan blok dan bagian ketiga menangani pemetaan penyimpanan file.

Infrastruktur

Untuk menjaga kepraktisan artikel ini, saya tidak akan membahas detail tentang arsitektur cluster OpenShift Container Platform (OCP) atau informasi lain yang tidak relevan dengan aktivitas tersebut. Ketahuilah bahwa saya menggunakan klaster OCP di AWS dengan penyebaran klaster ODF internal pada tiga pekerja terpisah di AZ yang berbeda dengan satu set perangkat masing-masing 500GB (total 1,5TB). Ini adalah versi yang digunakan OCP dan ODF:

[alexon@bastion ~]$ oc version
Client Version: 4.7.4
Server Version: 4.7.11
Kubernetes Version: v1.20.0+75370d3

[alexon@bastion ~]$ oc -n openshift-storage get csv

NAME DISPLAY VERSION REPLACES PHASE
elasticsearch-operator.5.0.3-6 OpenShift Elasticsearch Operator 5.0.3-6  
elasticsearch-operator.4.6.0-202103010126.p0 Succeeded
ocs-operator.v4.7.0 OpenShift Container Storage 4.7.0 ocs-operator.v4.6.4 Succeeded

[alexon@bastion ~]$ oc get nodes -l cluster.ocs.openshift.io/openshift-storage=

NAME STATUS ROLES   
AGE VERSION
ip-10-0-143-192.ec2.internal Ready   
worker 6d23h v1.20.0+75370d3
ip-10-0-154-20.ec2.internal Ready   
worker 6d23h v1.20.0+75370d3
ip-10-0-171-63.ec2.internal Ready   
worker 6d23h v1.20.0+75370d3 

Sekarang, untuk dapat melakukan analisis yang diperlukan pada blok ODF dan penyimpanan backend file Anda, yang dalam hal ini adalah Ceph, Anda memerlukan alat khusus. Alat ini adalah kotak alat Benteng, wadah dengan alat umum yang digunakan untuk debugging dan pengujian benteng. Ini tersedia di repositori GitHub resmi Rook, dan Anda dapat membaca lebih lanjut tentangnya di sini.

Menggunakan kotak alat

Tugas pertama adalah menggunakan spesifikasi toolbox untuk menjalankan pod toolbox dalam mode interaktif yang tersedia pada link yang disediakan di atas, atau download langsung dari link ini.

Simpan sebagai file YAML, lalu luncurkan rook-ceph-tools pod:

[alexon@bastion ~]$ oc apply -f toolbox.yml -n openshift-storage 

Seperti yang Anda lihat di bawah, tumpukan ODF saya berjalan lancar di openshift-storage . saya proyek. Saya telah mengonfigurasi kelas penyimpanan yang sesuai, dengan ocs-storagecluster-ceph-rbd menjadi SC default. Juga, saya sudah memiliki rook-ceph-tools pod dikerahkan dan dijalankan:

[alexon@bastion ~]$ oc project openshift-storage
Now using project "openshift-storage" on server "https://api.example.com:6443": 
[alexon@bastion ~]$ oc get pods NAME                                                              READY STATUS RESTARTS   AGE csi-cephfsplugin-c86r8                                            3/3 Running 0          3h13m csi-cephfsplugin-lk8cq                                            3/3 Running 0          3h14m csi-cephfsplugin-pqhrh                                            3/3 Running   0 3h13m csi-cephfsplugin-provisioner-6878df594-8547z 6/6 Running   0 3h14m csi-cephfsplugin-provisioner-6878df594-bl7hn 6/6 Running   0 3h14m csi-rbdplugin-ff4hz                                               3/3 Running 0          3h13m csi-rbdplugin-m2cf7 3/3 Running   0 3h13m csi-rbdplugin-provisioner-85f54d8949-h47td 6/6 Running   0 3h14m csi-rbdplugin-provisioner-85f54d8949-mstpp 6/6 Running   0 3h14m csi-rbdplugin-t8tpg                                               3/3 Running 0          3h14m noobaa-core-0 1/1 Running   0 3h11m noobaa-db-pg-0                                                    1/1 Running 0          3h14m noobaa-endpoint-75644c884-rv7zn 1/1 Running   0 3h10m noobaa-operator-5b4ccb78d6-lz66m 1/1 Running   0 3h14m ocs-metrics-exporter-db8d78475-ch2mk 1/1 Running   0 3h14m ocs-operator-776b95f74b-mzmwq 1/1     Running 0 3h14m rook-ceph-crashcollector-ip-10-0-143-192-59fc4bff5b-22sv4 1/1     Running 0 3h12m rook-ceph-crashcollector-ip-10-0-154-20-65d656dbb4-4q6xk 1/1 Running   0 3h13m rook-ceph-crashcollector-ip-10-0-171-63-74f8554574-f99br 1/1 Running   0 3h13m rook-ceph-mds-ocs-storagecluster-cephfilesystem-a-b89f56667z5fj 2/2     Running 0 3h12m rook-ceph-mds-ocs-storagecluster-cephfilesystem-b-558f8bbct2lrv 2/2     Running 0 3h12m rook-ceph-mgr-a-6d54bfd95d-7xdwp 2/2 Running   0 3h11m rook-ceph-mon-a-67fc544d5f-f7ghz 2/2 Running   0 3h13m rook-ceph-mon-b-6c6b9565d7-cbgqz 2/2 Running   0 3h11m rook-ceph-mon-c-6c44cb9765-9h828 2/2 Running   0 3h13m rook-ceph-operator-58c6f9696b-b2qnm 1/1 Running   0 3h14m rook-ceph-osd-0-66cfd8cd5f-dgvpp 2/2 Running   0 3h10m rook-ceph-osd-1-5c75dbffdd-qg8gs 2/2 Running   0 3h9m rook-ceph-osd-2-7c555c7578-jq8sz 2/2 Running   0 3h8m rook-ceph-tools-78cdfd976c-b6wk7 1/1 Running   0 179m [alexon@bastion ~]$ oc get sc NAME                                    PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE gp2                                     kubernetes.io/aws-ebs                   Delete          WaitForFirstConsumer true 6d22h gp2-csi ebs.csi.aws.com Delete WaitForFirstConsumer true 6d22h ocs-storagecluster-ceph-rbd (default) openshift-storage.rbd.csi.ceph.com Delete Immediate true 6d2h ocs-storagecluster-cephfs               openshift-storage.cephfs.csi.ceph.com   Delete Immediate true 6d2h openshift-storage.noobaa.io             openshift-storage.noobaa.io/obc         Delete Immediate false 6d2h

Masuk ke pod kotak alat Anda untuk mengumpulkan lebih banyak informasi tentang cluster penyimpanan Anda:

[alexon@bastion ~]$ toolbox=$(oc get pods -n openshift-storage -l app=rook-ceph-tools -o name)
[alexon@bastion ~]$ oc rsh -n openshift-storage $toolbox 

Jalankan perintah yang dikenal untuk mengelola cluster Ceph untuk memeriksa beberapa informasi tentang cluster ODF Anda:

sh-4.4$ ceph -s

  cluster:
    id: ef49037e-1257-462c-b8da-053f6a9ce9b2
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum a,b,c (age 3h)
    mgr: a(active, since 3h)
    mds: ocs-storagecluster-cephfilesystem:1 {0=ocs-storagecluster-cephfilesystem-a=up:active} 1 up:standby-replay
    osd: 3 osds: 3 up (since 3h), 3 in (since 6d)
 
  task status:
    scrub status:
       
mds.ocs-storagecluster-cephfilesystem-a: idle
       
mds.ocs-storagecluster-cephfilesystem-b: idle
 
  data:
    pools: 3 pools, 96 pgs
    objects: 22.28k objects, 85 GiB
    usage: 254 GiB used, 1.3 TiB / 1.5 TiB avail
    pgs: 96 active+clean
 
  io:
    client: 853 B/s rd, 2.1 MiB/s wr, 1 op/s rd, 171 op/s wr
 
sh-4.4$ ceph df

RAW STORAGE:
    CLASS SIZE       
AVAIL USED RAW USED %RAW USED 
    ssd 1.5 TiB 1.3 TiB    
251 GiB 254 GiB 16.54 
    TOTAL 1.5 TiB    
1.3 TiB 251 GiB 254 GiB 16.54 
 
POOLS:
    POOL                                          
ID STORED OBJECTS USED       
%USED MAX AVAIL 
   
ocs-storagecluster-cephblockpool 1 84 GiB 22.25k    
251 GiB 19.27 351 GiB 
   
ocs-storagecluster-cephfilesystem-metadata 2    
1.4 MiB 25 4.2 MiB 0      
351 GiB 
   
ocs-storagecluster-cephfilesystem-data0 3 0 B 0 0 B 0      
351 GiB 

sh-4.4$ ceph osd status

+----+------------------------------+-------+-------+--------+---------+--------+---------+-----------+
| id |            
host | used | avail | wr ops | wr data | rd ops | rd data | state |
+----+------------------------------+-------+-------+--------+---------+--------+---------+-----------+
| 0 | ip-10-0-171-63.ec2.internal | 84.6G | 427G | 87 | 947k 
| 0 |    
0 | exists,up |
| 1 | ip-10-0-143-192.ec2.internal | 84.6G | 
427G | 61 |  
510k | 0  
| 0 | exists,up |
| 2 | ip-10-0-154-20.ec2.internal | 84.6G | 427G | 96  
| 1072k |   
2 | 106  
| exists,up |
+----+------------------------------+-------+-------+--------+---------+--------+---------+-----------+

sh-4.4$ ceph osd tree

ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF 
 -1 1.50000 root default                                                                
 -5 1.50000 region us-east-1                                                        
 -4 0.50000 zone us-east-1a                                                     
 -3 0.50000 host ocs-deviceset-gp2-csi-1-data-085b8h                         
  1 ssd 0.50000 osd.1 up 1.00000 1.00000 
-10 0.50000 zone us-east-1b                                                     
 -9 0.50000 host ocs-deviceset-gp2-csi-2-data-0n9lkb                         
  2 ssd 0.50000 osd.2 up 1.00000 1.00000 
-14      
0.50000 zone us-east-1c                                                     
-13      
0.50000 host ocs-deviceset-gp2-csi-0-data-0gvt22                         
  0 ssd 0.50000 osd.0 up 1.00000 1.00000 

sh-4.4$ rados df

POOL_NAME USED OBJECTS 
CLONES COPIES MISSING_ON_PRIMARY UNFOUND 
DEGRADED RD_OPS RD   
WR_OPS WR USED COMPR 
UNDER COMPR
ocs-storagecluster-cephblockpool 251 GiB 22266      
0 66798 0 0 0 
475905 34 GiB 37496563 
634 GiB 0 B 0 B
ocs-storagecluster-cephfilesystem-data0 0 B 0      
0 0 0 0 0     
30 14 KiB 42  
24 KiB 0 B 0 B
ocs-storagecluster-cephfilesystem-metadata 4.2 MiB      
25 0 75 0       
0 0 142734 
78 MiB 706 1.7 MiB 0 B 0 B

total_objects   
22291
total_used 254 GiB
total_avail 1.3 TiB
total_space 1.5 TiB

sh-4.4$ ceph fs status

ocs-storagecluster-cephfilesystem - 0 clients
=================================
+------+----------------+-------------------------------------+---------------+-------+-------+
| Rank |    
State | MDS | Activity  
| dns | inos |
+------+----------------+-------------------------------------+---------------+-------+-------+
| 0 |    
active | ocs-storagecluster-cephfilesystem-a | Reqs:   
0 /s | 59 |  
32 |
| 0-s | standby-replay | ocs-storagecluster-cephfilesystem-b | Evts: 0 /s |  
68 | 24 |
+------+----------------+-------------------------------------+---------------+-------+-------+
+--------------------------------------------+----------+-------+-------+
|                   
Pool |  
type | used | avail |
+--------------------------------------------+----------+-------+-------+
| ocs-storagecluster-cephfilesystem-metadata | metadata | 4260k | 350G |
| 
ocs-storagecluster-cephfilesystem-data0  
| data | 0 | 350G |
+--------------------------------------------+----------+-------+-------+
+-------------+
| Standby MDS |
+-------------+
+-------------+
MDS version: ceph version 14.2.11-147.el8cp (1f54d52f20d93c1b91f1ec6af4c67a4b81402800) nautilus (stable)

sh-4.4$ ceph fs volume ls

[
    {
       
"name": "ocs-storagecluster-cephfilesystem"
    }
] 

Seperti yang Anda lihat di atas, ocs-storagecluster-cephblockpool dan ocs-storagecluster-cephfilesystem-data0 kolam dibuat secara default. Yang pertama digunakan oleh RBD untuk penyimpanan blok, dan yang kedua digunakan oleh CephFS untuk penyimpanan file. Ingatlah hal ini, karena ini adalah kumpulan yang akan Anda gunakan dalam penyelidikan Anda.

[ Memulai container? Lihat kursus gratis ini. Menerapkan aplikasi dalam container:Ikhtisar teknis. ]

Menutup

Di sini, di bagian pertama, saya telah mendefinisikan masalah pemetaan objek aplikasi dalam kluster ODF. Saya membahas wadah kotak peralatan Benteng dan alat debugging dan pengujian umum yang terkandung di dalamnya. Saya juga menetapkan infrastruktur yang akan Anda gunakan dalam dua artikel berikutnya dari seri ini. Dari sini, buka artikel dua untuk cakupan penyimpanan blok pemetaan dalam cluster ODF. Setelah itu, baca bagian ketiga untuk pemetaan penyimpanan file dan ringkasan proyek.


Linux
  1. Menemukan blok dan file konten aplikasi OCP di ODF:Membuat proyek

  2. Metode Paling Efisien Untuk Mengosongkan Isi File?

  3. Perbedaan Antara .exrc Dan .vimrc?

  1. lsinitramfs:Mencantumkan isi sistem file initrd.

  2. Menemukan kata terpanjang dalam file teks

  3. Salin konten file ke clipboard di terminal Linux

  1. Perbedaan Antara Tautan Simbolik dan Tautan Keras?

  2. Bagaimana Anda mem-gunzip file dan menyimpan file .gz?

  3. Bagaimana cara menampilkan isi file secara rekursif?