GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Finden von Block- und Datei-OCP-Anwendungsinhalten in ODF:Die Infrastruktur

Red Hat OpenShift Data Foundation – früher Red Hat OpenShift Container Storage – ist softwaredefinierter Speicher für Container. Red Hat OpenShift Data Foundation (ODF) wurde als Daten- und Speicherdienstplattform für Red Hat OpenShift entwickelt und unterstützt Teams bei der schnellen und effizienten Entwicklung und Bereitstellung von Anwendungen über Clouds hinweg. Es ist eine leistungsstarke Lösung, die Block-, Datei- und Objektspeicherung ermöglicht.

Für diejenigen, die an eine herkömmliche Speicherlösung gewöhnt sind, stellt sich vielleicht die Frage, wie ein Benutzer abbilden kann, wo die Objekte einer Anwendung innerhalb des ODF-Clusters gespeichert sind, da das Konzept des verteilten und skalierbaren Speichers, das ODF mit sich bringt, erhebliche Unterschiede zu anderen aufweist Lösungen. In diesem Artikel untersuchen Sie, wie man diese Zuordnung für Fehlerbehebungsszenarien durchführen kann.

Ich habe viel zu tun mit diesem Thema, also ist der Inhalt in drei Artikel aufgeteilt. Der erste Artikel (dieser) bereitet die Bühne vor, indem er die Umgebung und die notwendigen Komponenten definiert. Teil 2 befasst sich mit Blockspeicherinformationen und Teil 3 mit der Dateispeicherzuordnung.

Die Infrastruktur

Um die Praktikabilität dieses Artikels zu wahren, werde ich nicht auf Details zur Architektur des OpenShift Container Platform (OCP)-Clusters oder andere Informationen eingehen, die für die Aktivität irrelevant sind. Sie müssen nur wissen, dass ich einen OCP-Cluster auf AWS mit einer internen ODF-Cluster-Bereitstellung auf drei separaten Workern in verschiedenen AZs mit einem Gerätesatz von jeweils 500 GB (insgesamt 1,5 TB) verwende. Dies sind die Versionen, die sowohl OCP als auch ODF verwenden:

[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

Um nun die notwendige Analyse Ihres ODF-Block- und Datei-Backend-Speichers, in diesem Fall Ceph, durchführen zu können, benötigen Sie ein spezielles Tool. Dieses Tool ist die Rook-Toolbox, ein Container mit allgemeinen Tools, die zum Debuggen und Testen von Rook verwendet werden. Es ist im offiziellen GitHub-Repository von Rook verfügbar, und Sie können hier mehr darüber lesen.

Die Toolbox verwenden

Die erste Aufgabe besteht darin, die Toolbox-Spezifikation zu verwenden, um den Toolbox-Pod in einem interaktiven Modus auszuführen, der unter dem oben angegebenen Link verfügbar ist, oder direkt von diesem Link herunterzuladen.

Speichern Sie es als YAML-Datei und starten Sie dann die rook-ceph-tools Pod:

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

Wie Sie unten sehen können, läuft mein ODF-Stack reibungslos in meinem openshift-Speicher Projekt. Ich habe die entsprechenden Speicherklassen mit ocs-storagecluster-ceph-rbd konfiguriert ist der Standard-SC. Außerdem habe ich bereits die rook-ceph-tools Pod bereitgestellt und ausgeführt:

[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

Rufen Sie Ihren Toolbox-Pod auf, um weitere Informationen zu Ihrem Speichercluster zu sammeln:

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

Führen Sie die bekannten Befehle zum Verwalten eines Ceph-Clusters aus, um einige Informationen zu Ihrem ODF-Cluster zu überprüfen:

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"
    }
]

Wie Sie oben sehen können, ist der ocs-storagecluster-cephblockpool und die ocs-storagecluster-cephfilesystem-data0 Pools werden standardmäßig erstellt. Der erste wird von RBD für die Blockspeicherung und der zweite von CephFS für die Dateispeicherung verwendet. Denken Sie daran, da dies die Pools sind, die Sie für Ihre Untersuchungen verwenden werden.

[ Erste Schritte mit Containern? Schauen Sie sich diesen kostenlosen Kurs an. Containerisierte Anwendungen bereitstellen:Ein technischer Überblick. ]

Abschluss

Hier im ersten Teil habe ich das Problem der Zuordnung von Anwendungsobjekten innerhalb eines ODF-Clusters definiert. Ich habe den Rook-Toolbox-Container und die darin enthaltenen allgemeinen Debugging- und Test-Tools behandelt. Ich habe auch die Infrastruktur eingerichtet, die Sie in den nächsten beiden Artikeln der Reihe verwenden werden. Gehen Sie von hier aus zu Artikel 2, um Informationen zum Zuordnen von Blockspeichern innerhalb des ODF-Clusters zu erhalten. Lesen Sie danach Teil drei für die Dateispeicherzuordnung und eine Zusammenfassung des Projekts.


Linux
  1. Effizienteste Methode, um den Inhalt einer Datei zu leeren?

  2. Der Unterschied zwischen symbolischen und harten Links?

  3. Io-Umleitung und der Head-Befehl?

  4. Wie finde ich den Typ einer Img-Datei und mounte sie?

  5. libpng-Warnung:Inkompatible libpng-Version in Anwendung und Bibliothek

So verwenden Sie Sudo und die Sudoers-Datei

So speichern Sie eine Datei in Vim / Vi und beenden den Editor

So zeigen Sie den Inhalt eines Archivs oder einer komprimierten Datei unter Linux an

Finden von Block- und Datei-OCP-Anwendungsinhalten in ODF:Erstellen eines Dateispeicherprojekts

Zeigen Sie den Inhalt einer Datei in der Linux-Befehlszeile an

Anzeigen des Inhalts der Festplatte im Binärformat