9.3. Red Hat Ceph Storage MDS를 기존 클러스터 내의 새 노드로 마이그레이션


cephfs-native 또는 ceph-nfs 백엔드와 함께 배포된 Shared File Systems 서비스(manila)가 오버클라우드 배포의 일부인 경우 MDS 데몬을 마이그레이션할 수 있습니다. MDS 마이그레이션은 cephadm 에서 수행하며 호스트 기반 접근 방식에서 레이블 기반 접근 방식으로 데몬 배치를 이동합니다. 이렇게 하면 ceph orch host 명령을 사용하여 클러스터의 상태와 데몬이 배치되는 위치를 시각화할 수 있습니다. Red Hat Knowledgebase 문서 Red Hat Ceph Storage: 지원 구성에 설명된 대로 지정된 호스트 내에 데몬이 공동 배치되는 방법에 대한 일반 보기도 있습니다.

사전 요구 사항

프로세스

  1. Red Hat Ceph Storage 클러스터가 정상인지 확인하고 MDS 상태를 확인합니다.

    $ sudo cephadm shell -- ceph fs ls
    name: cephfs, metadata pool: manila_metadata, data pools: [manila_data ]
    
    $ sudo cephadm shell -- ceph mds stat
    cephfs:1 {0=mds.controller-2.oebubl=up:active} 2 up:standby
    
    $ sudo cephadm shell -- ceph fs status cephfs
    
    cephfs - 0 clients
    ======
    RANK  STATE         	MDS           	ACTIVITY 	DNS	INOS   DIRS   CAPS
     0	active  mds.controller-2.oebubl  Reqs:	0 /s   696	196	173  	0
      	POOL     	TYPE 	USED  AVAIL
    manila_metadata  metadata   152M   141G
      manila_data  	data	3072M   141G
      	STANDBY MDS
    mds.controller-0.anwiwd
    mds.controller-1.cwzhog
  2. Ceph 파일 시스템(CephFS) MDS 상태에 대한 자세한 정보를 검색합니다.

    $ sudo cephadm shell -- ceph fs dump
    
    e8
    enable_multiple, ever_enabled_multiple: 1,1
    default compat: compat={},rocompat={},incompat={1=base v0.20,2=client writeable ranges,3=default file layouts on dirs,4=dir inode in separate object,5=mds uses versioned encoding,6=dirfrag is stored in omap,8=no anchor table,9=file layout v2,10=snaprealm v2}
    legacy client fscid: 1
    
    Filesystem 'cephfs' (1)
    fs_name cephfs
    epoch   5
    flags   12 joinable allow_snaps allow_multimds_snaps
    created 2024-01-18T19:04:01.633820+0000
    modified    	2024-01-18T19:04:05.393046+0000
    tableserver 	0
    root	0
    session_timeout 60
    session_autoclose   	300
    max_file_size   1099511627776
    required_client_features    	{}
    last_failure	0
    last_failure_osd_epoch  0
    compat  compat={},rocompat={},incompat={1=base v0.20,2=client writeable ranges,3=default file layouts on dirs,4=dir inode in separate object,5=mds uses versioned encoding,6=dirfrag is stored in omap,7=mds uses inline data,8=no anchor table,9=file layout v2,10=snaprealm v2}
    max_mds 1
    in  	0
    up  	{0=24553}
    failed
    damaged
    stopped
    data_pools  	[7]
    metadata_pool   9
    inline_data 	disabled
    balancer
    standby_count_wanted	1
    [mds.mds.controller-2.oebubl{0:24553} state up:active seq 2 addr [v2:172.17.3.114:6800/680266012,v1:172.17.3.114:6801/680266012] compat {c=[1],r=[1],i=[7ff]}]
    
    
    Standby daemons:
    
    [mds.mds.controller-0.anwiwd{-1:14715} state up:standby seq 1 addr [v2:172.17.3.20:6802/3969145800,v1:172.17.3.20:6803/3969145800] compat {c=[1],r=[1],i=[7ff]}]
    [mds.mds.controller-1.cwzhog{-1:24566} state up:standby seq 1 addr [v2:172.17.3.43:6800/2227381308,v1:172.17.3.43:6801/2227381308] compat {c=[1],r=[1],i=[7ff]}]
    dumped fsmap epoch 8
  3. OSD 블록 목록을 확인하고 클라이언트 목록을 정리합니다.

    $ sudo cephadm shell -- ceph osd blocklist ls
    $ for item in $(sudo cephadm shell -- ceph osd blocklist ls | awk '{print $1}'); do
    >     sudo cephadm shell -- ceph osd blocklist rm $item;
    > done
    참고

    파일 시스템 클라이언트가 응답하지 않거나 잘못 작동하는 경우 파일 시스템에 대한 액세스가 강제로 종료될 수 있습니다. 이 프로세스를 제거라고 합니다. CephFS 클라이언트를 제거하면 MDS 데몬 및 OSD 데몬과 추가로 통신할 수 없습니다.

    일반적으로 차단 목록에 있는 클라이언트는 서버에 다시 연결할 수 없습니다. 클라이언트를 마운트 해제한 다음 다시 마운트해야 합니다. 그러나 다시 연결을 시도하는 클라이언트를 허용하는 것이 유용할 수 있습니다. CephFS는 RADOS OSD 블록 목록을 사용하여 클라이언트 제거를 제어하므로, 블록 목록에서 CephFS 클라이언트를 제거하여 다시 연결할 수 있습니다.

  4. 현재 Red Hat Ceph Storage 클러스터에 속하는 호스트를 가져옵니다.

    [ceph: root@controller-0 /]# ceph orch host ls
    HOST                        ADDR           LABELS          STATUS
    cephstorage-0.redhat.local  192.168.24.25  osd
    cephstorage-1.redhat.local  192.168.24.50  osd
    cephstorage-2.redhat.local  192.168.24.47  osd
    controller-0.redhat.local   192.168.24.24  _admin mgr mon
    controller-1.redhat.local   192.168.24.42  mgr _admin mon
    controller-2.redhat.local   192.168.24.37  mgr _admin mon
    6 hosts in cluster
  5. MDS 레이블을 대상 노드에 적용합니다.

    for item in $(sudo cephadm shell --  ceph orch host ls --format json | jq -r '.[].hostname'); do
        sudo cephadm shell -- ceph orch host label add  $item mds;
    done
  6. 모든 호스트에 MDS 레이블이 있는지 확인합니다.

    $ sudo cephadm shell -- ceph orch host ls
    
    HOST                    	ADDR       	   LABELS
    cephstorage-0.redhat.local  192.168.24.11  osd mds
    cephstorage-1.redhat.local  192.168.24.12  osd mds
    cephstorage-2.redhat.local  192.168.24.47  osd mds
    controller-0.redhat.local   192.168.24.35  _admin mon mgr mds
    controller-1.redhat.local   192.168.24.53  mon _admin mgr mds
    controller-2.redhat.local   192.168.24.10  mon _admin mgr mds
  7. 현재 MDS 사양을 덤프합니다.

    $ SPEC_DIR=${SPEC_DIR:-"$PWD/ceph_specs"}
    $ mkdir -p ${SPEC_DIR}
    $ sudo cephadm shell -- ceph orch ls --export mds > ${SPEC_DIR}/mds
  8. 검색된 사양을 편집하고 placement.hosts 섹션을 placement.label:으로 바꿉니다.

    service_type: mds
    service_id: mds
    service_name: mds.mds
    placement:
      label: mds
  9. ceph 오케스트레이터 를 사용하여 새 MDS 사양을 적용합니다.

    $ SPEC_DIR=${SPEC_DIR:-"$PWD/ceph_specs"}
    $ sudo cephadm shell -m ${SPEC_DIR}/mds -- ceph orch apply -i /mnt/mds
    
    Scheduling new mds deployment ...

    이로 인해 MDS 데몬 수가 증가합니다.

  10. CephFS에 임시로 추가되는 새 대기 데몬을 확인합니다.

    $ sudo cephadm shell -- ceph fs dump
    
    Active
    
    standby_count_wanted    1
    [mds.mds.controller-0.awzplm{0:463158} state up:active seq 307 join_fscid=1 addr [v2:172.17.3.20:6802/51565420,v1:172.17.3.20:6803/51565420] compat {c=[1],r=[1],i=[7ff]}]
    
    
    Standby daemons:
    
    [mds.mds.cephstorage-1.jkvomp{-1:463800} state up:standby seq 1 join_fscid=1 addr [v2:172.17.3.135:6820/2075903648,v1:172.17.3.135:6821/2075903648] compat {c=[1],r=[1],i=[7ff]}]
    [mds.mds.controller-2.gfrqvc{-1:475945} state up:standby seq 1 addr [v2:172.17.3.114:6800/2452517189,v1:172.17.3.114:6801/2452517189] compat {c=[1],r=[1],i=[7ff]}]
    [mds.mds.cephstorage-0.fqcshx{-1:476503} state up:standby seq 1 join_fscid=1 addr [v2:172.17.3.92:6820/4120523799,v1:172.17.3.92:6821/4120523799] compat {c=[1],r=[1],i=[7ff]}]
    [mds.mds.cephstorage-2.gnfhfe{-1:499067} state up:standby seq 1 addr [v2:172.17.3.79:6820/2448613348,v1:172.17.3.79:6821/2448613348] compat {c=[1],r=[1],i=[7ff]}]
    [mds.mds.controller-1.tyiziq{-1:499136} state up:standby seq 1 addr [v2:172.17.3.43:6800/3615018301,v1:172.17.3.43:6801/3615018301] compat {c=[1],r=[1],i=[7ff]}]
  11. MDS를 대상 노드로 마이그레이션하려면 MDS 장애 조치를 관리하는 MDS 선호도를 설정합니다.

    참고

    특정 파일 시스템에 대해 전용 MDS를 "활성"으로 선택할 수 있습니다. 이 기본 설정을 구성하기 위해 CephFSmds_join_fs 라는 MDS에 대한 구성 옵션을 제공하여 이 선호도를 적용합니다. MDS 데몬을 통해 오류가 발생하면 클러스터 모니터에서 파일 시스템 이름과 같은 mds_join_fs 가 실패한 대기 데몬을 선호합니다. 파일 시스템 이름과 동일한 mds_join_fs 를 사용하여 대기 상태가 없는 경우 교체로 정규화되지 않은 대기 시간을 선택합니다.

    $ sudo cephadm shell -- ceph config set mds.mds.cephstorage-0.fqcshx mds_join_fs cephfs
    • mds.mds.cephstorage-0.fqcshx 를 이전 단계에서 검색된 cephstorage-0 에 배포된 데몬으로 바꿉니다.
  12. 컨트롤러 노드에서 레이블을 제거하고 대상 노드로 MDS 페일오버를 강제 적용합니다.

    $ for i in 0 1 2; do sudo cephadm shell -- ceph orch host label rm "controller-$i.redhat.local" mds; done
    
    Removed label mds from host controller-0.redhat.local
    Removed label mds from host controller-1.redhat.local
    Removed label mds from host controller-2.redhat.local

    대상 노드로의 전환은 백그라운드에서 수행됩니다. 새로운 활성 MDS는 mds_join_fs 명령을 사용하여 설정한 MDS입니다.

  13. 장애 조치 및 새 배포된 데몬의 결과를 확인합니다.

    $ sudo cephadm shell -- ceph fs dump
    …
    …
    standby_count_wanted    1
    [mds.mds.cephstorage-0.fqcshx{0:476503} state up:active seq 168 join_fscid=1 addr [v2:172.17.3.92:6820/4120523799,v1:172.17.3.92:6821/4120523799] compat {c=[1],r=[1],i=[7ff]}]
    
    
    Standby daemons:
    
    [mds.mds.cephstorage-2.gnfhfe{-1:499067} state up:standby seq 1 addr [v2:172.17.3.79:6820/2448613348,v1:172.17.3.79:6821/2448613348] compat {c=[1],r=[1],i=[7ff]}]
    [mds.mds.cephstorage-1.jkvomp{-1:499760} state up:standby seq 1 join_fscid=1 addr [v2:172.17.3.135:6820/452139733,v1:172.17.3.135:6821/452139733] compat {c=[1],r=[1],i=[7ff]}]
    
    
    $ sudo cephadm shell -- ceph orch ls
    
    NAME                     PORTS   RUNNING  REFRESHED  AGE  PLACEMENT
    crash                                6/6  10m ago    10d  *
    mds.mds                          3/3  10m ago    32m  label:mds
    
    
    $ sudo cephadm shell -- ceph orch ps | grep mds
    
    
    mds.mds.cephstorage-0.fqcshx  cephstorage-0.redhat.local                     running (79m)     3m ago  79m    27.2M        -  17.2.6-100.el9cp  1af7b794f353  2a2dc5ba6d57
    mds.mds.cephstorage-1.jkvomp  cephstorage-1.redhat.local                     running (79m)     3m ago  79m    21.5M        -  17.2.6-100.el9cp  1af7b794f353  7198b87104c8
    mds.mds.cephstorage-2.gnfhfe  cephstorage-2.redhat.local                     running (79m)     3m ago  79m    24.2M        -  17.2.6-100.el9cp  1af7b794f353  f3cb859e2a15
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동