GNU/Linux >> Linux の 問題 >  >> Linux

ODFでのブロックおよびファイルOCPアプリケーションの内容の検索:インフラストラクチャ

Red Hat OpenShift Data Foundation(以前のRed Hat OpenShift Container Storage)は、コンテナー用のソフトウェア定義のストレージです。 RedHatOpenShiftのデータおよびストレージサービスプラットフォームとして設計されたRedHatOpenShift Data Foundation(ODF)は、チームがクラウド全体でアプリケーションを迅速かつ効率的に開発およびデプロイするのに役立ちます。これは、ブロック、ファイル、およびオブジェクトのストレージを可能にする強力なソリューションです。

従来のストレージソリューションに慣れている人にとっては、ODFがもたらす分散型でスケーラブルなストレージの概念は他のストレージとはかなり異なるため、ユーザーがアプリケーションのオブジェクトがODFクラスター内のどこに格納されるかをどのようにマッピングできるかという疑問が生じる可能性があります。ソリューション。この記事では、シナリオのトラブルシューティングのためにこのマッピングを行う方法について説明します。

私はこのトピックをカバーするための多くの根拠を持っているので、内容は3つの記事に分かれています。最初の記事(これ)は、環境と必要なコンポーネントを定義することによってステージを設定します。パート2ではブロックストレージ情報を扱い、パート3ではファイルストレージマッピングを扱います。

インフラストラクチャ

この記事の実用性を維持するために、OpenShift Container Platform(OCP)クラスターのアーキテクチャーやアクティビティーに関係のないその他の情報については詳しく説明しません。 AWSでOCPクラスターを使用しており、デバイスセットがそれぞれ500GB(合計1.5TB)の異なるAZの3つの別々のワーカーに内部ODFクラスターをデプロイしていることを知っておいてください。 OCPと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

ここで、ODFブロックとファイルバックエンドストレージ(この場合はCeph)で必要な分析を実行できるようにするには、特定のツールが必要です。このツールは、ルークのデバッグとテストに使用される一般的なツールを含むコンテナであるルークツールボックスです。 Rookの公式GitHubリポジトリで入手できます。詳細については、こちらをご覧ください。

ツールボックスの使用

最初のタスクは、ツールボックスの仕様を使用して、上記のリンクから利用できるインタラクティブモードでツールボックスポッドを実行するか、このリンクから直接ダウンロードすることです。

YAMLファイルとして保存し、 rook-ceph-toolsを起動します ポッド:

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

以下に示すように、私のODFスタックは私の openshift-storageでスムーズに実行されています 事業。 ocs-storagecluster-ceph-rbd を使用して、適切なストレージクラスを構成しました デフォルトのSCです。また、私はすでに rook-ceph-toolsを持っています ポッドがデプロイされて実行されている:

[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

ツールボックスポッドにアクセスして、ストレージクラスターに関する詳細情報を収集します。

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

Cephクラスターを管理するための既知のコマンドを実行して、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"
    }
]

上記のように、 ocs-storagecluster-cephblockpool およびocs-storagecluster-cephfilesystem-data0 プールはデフォルトで作成されます。 1つ目はRBDがブロックストレージに使用し、2つ目はCephFSがファイルストレージに使用します。これらは調査で使用するプールであるため、これを覚えておいてください。

[ コンテナを使い始めますか?この無料コースをチェックしてください。コンテナ化されたアプリケーションのデプロイ:技術的な概要。 ]

まとめ

ここではパート1で、ODFクラスター内のアプリケーションオブジェクトのマッピングの問題を定義しました。 Rookツールボックスコンテナと、それに含まれる一般的なデバッグおよびテストツールについて説明しました。また、シリーズの次の2つの記事で使用するインフラストラクチャも確立しました。ここから、ODFクラスター内のマッピングブロックストレージの範囲については、記事2に進んでください。その後、ファイルストレージのマッピングとプロジェクトのまとめについてパート3をお読みください。


Linux
  1. .exrcと.vimrcの違いは?

  2. Imgファイルのタイプを見つけてマウントする方法は?

  3. lsinitramfs:initrd ファイル システムの内容を一覧表示します。

  1. libpng 警告:アプリケーションとライブラリで互換性のない libpng バージョン

  2. あるファイルの内容を別のファイルで検索する

  3. ファイルの内容を再帰的に表示するには?

  1. ファイルの内容を空にする最も効率的な方法は?

  2. シンボリックリンクとハードリンクの違いは?

  3. イオリダイレクションとヘッドコマンド?