GNU/Linux >> Znalost Linux >  >> Linux

Hledání obsahu blokové a souborové aplikace OCP v ODF:Infrastruktura

Red Hat OpenShift Data Foundation – dříve Red Hat OpenShift Container Storage – je softwarově definované úložiště pro kontejnery. Red Hat OpenShift Data Foundation (ODF), navržená jako platforma datových a úložných služeb pro Red Hat OpenShift, pomáhá týmům vyvíjet a nasazovat aplikace rychle a efektivně v cloudu. Je to výkonné řešení, které umožňuje ukládání bloků, souborů a objektů.

Pro ty, kteří jsou zvyklí na tradiční řešení úložiště, možná vyvstává otázka, jak může uživatel zmapovat, kde jsou objekty aplikace uloženy v clusteru ODF, protože koncept distribuovaného a škálovatelného úložiště, který ODF přináší, představuje značné rozdíly od jiných řešení. V tomto článku prozkoumáte, jak lze provést toto mapování pro scénáře řešení potíží.

Mám spoustu podkladů k pokrytí tohoto tématu, takže obsah je rozdělen do tří článků. První článek (tento) nastavuje scénu tím, že definuje prostředí a potřebné komponenty. Druhá část pokrývá informace o úložišti bloků a třetí část se zabývá mapováním úložiště souborů.

Infrastruktura

Abychom zachovali praktičnost tohoto článku, nebudu zabíhat do podrobností o architektuře clusteru OpenShift Container Platform (OCP) ani dalších informací nepodstatných pro danou aktivitu. Jen vím, že používám cluster OCP na AWS s interním nasazením clusteru ODF na třech samostatných pracovnících v různých AZ se sadou zařízení 500 GB každý (celkem 1,5 TB). Toto jsou verze, které OCP i ODF používají:

[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 

Nyní, abyste mohli provést nezbytnou analýzu vašeho ODF blokového a souborového backendového úložiště, což je v tomto případě Ceph, potřebujete specifický nástroj. Tento nástroj je sada nástrojů Rook, kontejner s běžnými nástroji používanými pro ladění a testování věží. Je k dispozici v oficiálním úložišti GitHub Rook a více si o něm můžete přečíst zde.

Použití panelu nástrojů

Prvním úkolem je použít specifikaci toolboxu ke spuštění toolboxu v interaktivním režimu, který je dostupný na výše uvedeném odkazu, nebo ke stažení přímo z tohoto odkazu.

Uložte jej jako soubor YAML a poté spusťte rook-ceph-tools pod:

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

Jak můžete vidět níže, můj zásobník ODF běží hladce v mém úložišti openshift projekt. Mám nakonfigurované příslušné třídy úložiště pomocí ocs-storagecluster-ceph-rbd je výchozí SC. Také už mám nástroje rook-ceph-tools pod nasazený a spuštěný:

[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

Přejděte do svého panelu nástrojů a shromážděte další informace o clusteru úložiště:

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

Spusťte známé příkazy pro správu clusteru Ceph a zkontrolujte některé informace o clusteru ODF:

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

Jak můžete vidět výše, ocs-storagecluster-cephblockpool a ocs-storagecluster-cephfilesystem-data0 bazény jsou vytvořeny ve výchozím nastavení. První používá RBD pro ukládání bloků a druhý používá CephFS pro ukládání souborů. Mějte to na paměti, protože toto jsou fondy, které budete používat ve svých vyšetřováních.

[ Začínáte s kontejnery? Podívejte se na tento bezplatný kurz. Nasazování kontejnerových aplikací:technický přehled. ]

Sbalit

Zde v první části jsem definoval problém mapování aplikačních objektů v rámci clusteru ODF. Zabýval jsem se kontejnerem Rook toolbox a běžnými nástroji pro ladění a testování, které jsou v něm obsaženy. Také jsem vytvořil infrastrukturu, kterou budete používat v následujících dvou článcích seriálu. Odtud přejděte k článku 2, kde najdete pokrytí úložiště mapovacích bloků v rámci clusteru ODF. Poté si přečtěte třetí část pro mapování úložiště souborů a shrnutí projektu.


Linux
  1. Vyhledání obsahu blokové a souborové aplikace OCP v ODF:Vytvoření projektu

  2. Nejúčinnější způsob, jak vyprázdnit obsah souboru?

  3. Rozdíl mezi symbolickými a pevnými odkazy?

  1. Jak zjistit typ souboru Img a připojit jej?

  2. lsinitramfs:Výpis obsahu souborového systému initrd.

  3. Upozornění libpng:Nekompatibilní verze libpng v aplikaci a knihovně

  1. Vyhledání nejdelšího slova v textovém souboru

  2. Jak zazipujete soubor a uchováte soubor .gz?

  3. Jak rekurzivně zobrazit obsah souboru?