3장. 새로운 기능 및 기능 개선
이 섹션에는 Red Hat Ceph Storage 릴리스에 도입된 모든 주요 업데이트, 개선 사항 및 새로운 기능이 나열되어 있습니다.
이 릴리스에서 추가된 주요 기능은 다음과 같습니다.
msgr2 프로토콜을 사용한 유선 압축 가능
이번 릴리스에서는 유선의 암호화 외에도 스토리지 클러스터 내의 보안 네트워크 작동을 위한 압축도 지원됩니다.
자세한 내용은 Red Hat Ceph Storage Data Security and Hardening Guide 의 암호화 및 키 관리 섹션을 참조하십시오.
Python 알림의 효율성 향상
이전에는 현재 모듈이 필요하지 않은 일부 사용되지 않은 알림이 있었습니다. 이로 인해 비효율이 발생했습니다.
이번 릴리스에서는 NotifyType
매개변수가 도입되었습니다. 현재 사용되는 이벤트 모듈(예: NotifyType.mon_map
,NotifyType.osd_map
등)은 주석입니다. 결과적으로 모듈에서 요청하는 이벤트만 대기열에 추가됩니다. 모듈을 사용하지 않는 이벤트가 발행됩니다. 이러한 변경으로 인해 python 알림이 더 효율적입니다.
pg_num
에 대한 변경 사항은 제한됩니다.
이전 버전에서는 진행 중인 pgp_num
이 pg_num
인 pg_num에 대한 drastic 변경이 이루어진 경우 사용자는 점별 배치 그룹 제한에 도달하여 오류를 유발할 수 있었습니다.
이번 릴리스에서는 pg_num
에 대한 변경 사항은osd 배치 그룹 제한에 대한 문제를 방지하기 위해 제한됩니다.
진행 업데이트에 대한 모든 배치 그룹 통계를 덤프하지 않도록 새로운 pg_progress
항목이 생성됩니다.
이전에는 pg_dump
항목에 python-land
로 복사된 경우 CPU를 낭비하는 불필요한 필드가 포함되어 있었습니다. 이로 인해 ClusterState::lock
hold 시간이 길어지므로 ms_dispatch
지연이 지연되고 일반적으로 프로세스 속도가 느려집니다.
이번 릴리스에서는 mgr 작업
또는 진행 중인 필드만 덤프하기 위해 새로운 pg_
항목이 생성됩니다.
progress
mgr_ip
가 더 이상 다시 패치되지 않음
이전에는 활성 Ceph 관리자 모듈의 수명 동안 mgr_ip
를 다시 가져와야 했습니다.
이번 릴리스에서는 활성 Ceph 관리자 모듈의 수명 동안 mgr_ip
가 변경되지 않으므로 다시 가져오기 위해 Ceph Manager로 다시 호출할 필요가 없습니다.
Ceph OSD의 QoS는 기본적으로 mClock 알고리즘을 기반으로 합니다.
이전에는 스케줄러가 Weighted Priority Queue(WPQ)로 기본 설정되었습니다. mClock 알고리즘을 기반으로 하는 QoS(Quality of Service)는 실험 단계에 있었으며 아직 프로덕션에 권장되지 않았습니다.
이번 릴리스에서는 mClock 기반 작업 대기열을 통해 클라이언트 입력 및 출력(I/O) 및 복구 또는 백필과 같은 Ceph OSD 특정 작업에 QoS 컨트롤을 적용할 수 있으며 pg scrub
,snap trim
, pg 삭제
와 같은 기타 백그라운드 작업도 사용할 수 있습니다. 각 서비스에 대한 리소스 할당은 각 Ceph OSD의 IOPS(초당 입력 및 출력 작업) 용량을 기반으로 하며 기본 제공 mClock 프로필을 사용합니다.
또한 이 릴리스에는 다음과 같은 향상된 기능이 포함되어 있습니다.
- OSD에 대한 핸드오프 자동 기준 성능 측정은 비현실적 측정이 감지될 때 기본 용량에 대한 보호 기능을 사용하여 Ceph OSD IOPS 용량을 결정합니다.
- 백그라운드 작업에 대한 절전 제한은 제거됩니다.
- override 플래그를 사용하여 재정의할 수 있는 기능과 함께 복구 및 최대 백필 옵션의 기본값이 높습니다.
- mClock 프로필을 사용하는 구성 세트는 mClock 및 Ceph 매개변수 튜닝의 복잡성을 숨깁니다.
자세한 내용은 Red Hat Ceph Storage 관리 가이드 의 mClock OSD 스케줄러 를 참조하십시오.
WORM 컴플라이언스 인증 지원
Red Hat은 WORM 규정 준수 인증을 지원합니다.
자세한 내용은 S3의 오브젝트 잠금 활성화를 참조하십시오.
사용자 및 버킷에 대한 유량 제한 설정
이번 릴리스에서는 Red Hat Ceph Storage 클러스터의 작업을 기반으로 사용자 및 버킷에 대한 속도 제한을 설정할 수 있습니다. 자세한 내용은 데이터 수집에 대한 속도 제한을 참조하십시오.
대기 시간을 줄이기 위해 영구 쓰기 로그 캐시라는 librbd
플러그인
이번 릴리스에서는 PWL(영구 쓰기 로그 캐시)이라는 새로운 librbd
플러그인은 SSD 장치로 대상으로 하는 영구 내결함성 쓰기 캐시를 제공합니다. 대기 시간을 크게 줄이고 낮은 io_depths
의 성능을 향상시킵니다. 이 캐시는 내부적으로 체크포인트를 유지 관리하는 로그 주문 나중 쓰기 설계를 사용하므로 클러스터에 다시 플러시되는 쓰기는 항상 일관성을 유지합니다. 클라이언트 캐시가 완전히 손실되더라도 디스크 이미지는 여전히 일관되게 유지되지만 데이터가 오래된 것처럼 보일 수 있습니다.
Ceph File System(CephFS)에서 스냅샷에 고가용성 비동기 복제 지원
이전에는 스토리지 클러스터당 하나의 cephfs-mirror
데몬만 배포되어 CephFS에서 스냅샷 디렉터리의 비동기 복제만 지원했습니다.
이번 릴리스에서는 두 개 이상의 노드에 여러 cephfs-mirror
데몬을 배포하여 스냅샷 동기화에서 동시성을 수행하여 고가용성을 제공할 수 있습니다.
자세한 내용은 Red Hat Ceph Storage 파일 시스템 가이드의 Ceph 파일 시스템미러링 섹션을 참조하십시오.
BlueStore가 V3로 업그레이드되었습니다.
이번 릴리스에서는 BlueStore 오브젝트 저장소가 V3로 업그레이드되었습니다. 다음은 두 가지 기능입니다.
- 할당 메타데이터는 RocksDB에서 제거되고 OSD 할당을 사용하여 al Cryostat 오브젝트의 전체 단계(destage)로 수행됩니다.
- 캐시 사용 기간의 경우에는 hot 워크로드 데이터보다 우선 순위가 더 낮을 수 있습니다. 자세한 내용은 Ceph BlueStore 를 참조하십시오.
cephadm
을 사용하여 운영 체제 튜닝 프로필 관리
이번 릴리스에서는 cephadm
을 사용하여 운영 susyem 튜닝 프로필을 생성하고 관리하여 Red Hat Ceph Storage 클러스터의 성능을 향상시킬 수 있습니다. 자세한 내용은 'cephadm'을 사용하여 운영 체제 튜닝 프로필 관리를 참조하십시오.
Red Hat Ceph Storage 5에서 Red Hat Ceph Storage 7로 직접 업그레이드 가능
업그레이드 계획 인식을 위해 Red Hat Ceph Storage 5를 Red Hat Ceph Storage 7(N=2)으로 직접 업그레이드할 수 있습니다.
이름으로 파일 시스템을 마운트하기 위해 새로운 cephfs-shell
옵션이 도입됨
이전에는 cephfs-shell에서 기본 파일 시스템만 마운트할 수 있었습니다.
이번 릴리스에서는 다른 파일 시스템을 이름으로 마운트할 수 있는 CLI 옵션이 cephfs-shell에 추가되어 kclient
및 ceph-fuse
에 대한 mds_namespace=
또는 fs= 옵션
과 유사한 항목이 있습니다.
이제 Ceph 대시보드를 통해 2일차 작업을 수행할 수 있습니다.
이번 릴리스에서는 Ceph 대시보드에서 매일 또는 주간 작업 빈도가 필요한 2일마다 작업을 수행할 수 있습니다. 이번 개선된 기능을 통해 대시보드의 평가 기능, 고객 경험 및 사용성 및 완성도가 향상됩니다. 이 외에도 작업을 완료하기 위해 추가 정보를 검색하고 사용자에게 안내하는 새로운 온스크린 요소도 포함되어 있습니다.
3.1. Cephadm 유틸리티
사용자가 Ceph 데몬의 인증 키를 회전할 수 있음
보안상의 이유로 일부 사용자는 스토리지 클러스터의 데몬에 사용되는 인증 키를 순환해야 하는 경우가 있습니다.
이번 릴리스에서는 ceph orch 데몬 rotate-key DAEMON_NAME명령을 사용하여 ceph 데몬에 대한 인증 키를
순환하는 기능이 도입되었습니다. MDS, OSD 및 MGR 데몬의 경우 데몬을 다시 시작할 필요가 없습니다. 그러나 Ceph Object Gateway 데몬과 같은 다른 데몬의 경우 새 키로 전환하려면 데몬을 다시 시작해야 할 수 있습니다.
이제 부트스트랩 로그가 STDOUT
에 기록됨
이번 릴리스에서는 잠재적인 오류를 줄이기 위해 부트스트랩 로그가 성공적인 부트스트랩 시나리오에서 STDERR
대신 STDOUT
에 기록됩니다.
이제 오케스트레이터에서 사용하는 사양에 Ceph Object Gateway zonegroup을 지정할 수 있습니다.
이전에는 오케스트레이터에서 Ceph Object Gateway의 영역 및 영역 설정을 처리할 수 있었습니다. 그러나 zonegroup 설정은 지원되지 않습니다.
이번 릴리스에서는 오케스트레이터에서 사용하는 사양에 rgw_zonegroup
매개변수를 지정할 수 있습니다. cephadm 은 사양에서 배포된 Ceph Object Gateway 데몬의 zonegroup을 설정합니다.
Ceph orch 데몬 add osd
now reports if the hostname specified for deploying the OSD is unknown
이전에는 ceph orch 데몬이 osd 명령을 추가하지
않았기 때문에 사용자가 호스트 이름이 올바르지 않은지 확인하지 못했습니다. 이로 인해 Cephadm이 명령을 삭제합니다.
이번 릴리스에서는 OSD 배포에 지정된 호스트 이름이 알 수 없는 경우 ceph orch 데몬이 osd
명령이 사용자에게 보고합니다.
cephadm shell
명령에서 시작 시 쉘에 사용 중인 이미지를 보고
이전에는 사용자가 쉘에 사용된 이미지를 항상 인식하지 못했습니다. 이는 쉘 내에서 실행되는 명령에 사용된 패키지에 영향을 미칩니다.
이번 릴리스에서는 cephadm shell
명령이 시작 시 쉘에 사용된 이미지를 보고합니다. 이제 쉘에서 사용 중인 패키지, 사용 중인 컨테이너 이미지를 볼 수 있으며 해당 이미지가 쉘 시작 시 생성된 것을 확인할 수 있습니다.
이제 ' /var/log/ceph' 아래의 클러스터 로그가 삭제됨
이번 릴리스에서는 cephadm rm-cluster
명령이 실행될 때 해당 노드에서 Ceph 클러스터를 제거하는 과정의 일부로 노드를 정리하기 위해 /var/log/ceph
아래의 클러스터 로그가 삭제됩니다. --keep-logs
가 rm-cluster
명령으로 전달되지 않는 한 클러스터 로그가 제거됩니다.
cephadm rm-cluster
명령이 여전히 존재하는 클러스터에 속하는 호스트에서 실행 중인 경우 호스트는 Cephadm에 의해 관리되고 Cephadm mgr 모듈이 여전히 활성화되고 실행 중인 경우 Cephadm이 즉시 새 데몬 배포를 시작하고 더 많은 로그가 표시될 수 있습니다.
Bugzilla:2036063
데몬 이름이 ceph orch restart
명령에 전달될 때 오류 처리 개선
이전에는 데몬이 ceph orch restart
명령으로 전달된 haproxy 또는 keepalived 데몬인 경우 역추적을 반환했습니다. 이로 인해 사용자가 실수로 또는 Cephadm이 다른 방식으로 실패했는지는 명확하지 않았습니다.
이번 릴리스에서는 사용자가 예상 서비스 이름 대신 ceph orch restart
명령에 데몬 이름을 전달하는 시기를 확인하기 위해 더 나은 오류 처리가 도입되었습니다. 데몬 이름이 표시되면 Cephadm에서 사용자에게 유효한 서비스가 전달되도록 ceph orch ls
를 보고하고 요청합니다.
이제 ceph rgw realm bootstrap -i rgw_spec.yaml
명령을 사용하여 Ceph Object Gateway realm,zone 및 zonegroup을 생성할 수 있습니다.
이번 릴리스에서는 Red Hat Ceph Storage 클러스터에서 Ceph Object Gateway를 설정하는 프로세스를 간소화하여 사용자가 ceph rgw realm bootstrap -i rgw_spec.yaml
명령을 사용하여 Ceph Object Gateway 영역 영역, 영역 및 영역 그룹을 생성할 수 있습니다. 표준 파일은 오케스트레이터를 사용하여 Ceph Object Gateway 데몬을 배포하는 데 사용되는 것과 유사하게 모델링해야 합니다. 그런 다음 이 명령은 realm,zone,, zonegroup을 생성하고 의 사양을 오케스트레이터에 전달하여 Ceph Object Gateway 데몬을 배포합니다.
예
rgw_realm: myrealm rgw_zonegroup: myzonegroup rgw_zone: myzone placement: hosts: - rgw-host1 - rgw-host2 spec: rgw_frontend_port: 5500
crush_device_class
및 위치
필드는 각각 OSD 사양 및 호스트 사양에 추가됩니다.
이번 릴리스에서는 crush_device_class
필드가 OSD 사양에 추가되고 호스트의 초기 crush 위치를 참조하는 위치 필드가 호스트 사양에 추가됩니다. 사용자가 호스트 사양에서
위치
필드를 설정하는 경우 cephadm 은 호스트 이름으로 ceph osd crush add-bucket
을 실행하고 crush 맵의 버킷으로 추가할 위치를 지정합니다. OSD의 경우 생성 시 crush 맵에 지정된 crush_device_class
로 설정됩니다.
이는 필드가 설정된 사양을 기반으로 생성된 OSD에만 해당합니다. 이미 배포된 OSD에는 영향을 미치지 않습니다.
사용자가 Ceph Object Gateway 관리자 모듈을 활성화할 수 있습니다.
이번 릴리스에서는 Ceph Object Gateway Manager 모듈을 사용할 수 있으며 ceph mgr 모듈을 사용하여 rgw 명령을 사용하여 사용자가
, ceph rgw
realm bootstrapceph rgw realm tokens
명령과 같은 Ceph Object Gateway 관리자 모듈의 기능에 액세스할 수 있도록 할 수 있습니다.
사용자가 node-exporter 데몬에 대한 추가 지표를 활성화할 수 있습니다.
이번 릴리스에서는 각 개별 옵션에 대한 명시적 지원이 필요하지 않고 사용자가 node-exporter 배포를 더 많이 사용자 지정할 수 있도록 extra_entrypoint_args
필드를 사용하여 Cephadm에서 배포한 node-exporter
데몬에 대해 활성화할 수 있는 추가 메트릭이 도입되었습니다.
service_type: node-exporter service_name: node-exporter placement: label: "node-exporter" extra_entrypoint_args: - "--collector.textfile.directory=/var/lib/node_exporter/textfile_collector2" ---
Bugzilla:2142431
사용자는 Ceph Monitor의 crush 위치를 설정하여 연결 모니터를 교체할 수 있습니다.
이번 릴리스에서는 사용자가 호스트에 배포된 모니터의 crush 위치를 설정할 수 있습니다. mon 사양 파일에서 할당해야 합니다.
예
service_type: mon service_name: mon placement: hosts: - host1 - host2 - host3 spec: crush_locations: host1: - datacenter=a host2: - datacenter=b - rack=2 host3: - datacenter=a
이는 주로 Cephadm에서 배포한 확장 클러스터에서 연결 모니터 데몬을 교체하기 위해 추가되므로 더 쉽게 사용할 수 있습니다. 이러한 변경 없이 사용자는 연결선 모니터가 crush 위치를 선언하지 않고 결합할 수 없기 때문에 Cephadm에서 작성한 파일을 수동으로 편집하여 연결 관리자 모니터를 배포할 수 없습니다.
crush_device_class
는 OSD 사양의 경로당 지정할 수 있습니다.
이번 릴리스에서는 Cephadm, crush_device_class
를 통해 OSD를 배포할 때 crush_device_class
설정을 통해 사용자가 OSD 사양 내부의 경로별로 유연하게 지정할 수 있습니다. OSD 서비스에 서비스 전체 crush_device_class
와 함께 이러한 경로 crush_device_classes
를 제공하도록 지원됩니다. 서비스 전체 crush_device_class
의 경우 설정이 기본값으로 간주되고 경로 지정 설정이 우선합니다.
예
service_type: osd service_id: osd_using_paths placement: hosts: - Node01 - Node02 crush_device_class: hdd spec: data_devices: paths: - path: /dev/sdb crush_device_class: ssd - path: /dev/sdc crush_device_class: nvme - /dev/sdd db_devices: paths: - /dev/sde wal_devices: paths: - /dev/sdf
업그레이드 중 호스트가 오프라인 상태가 되면 cephadm이 특정 상태 경고 UPGRADE_OFFLINE_HOST
이전에는 호스트가 오프라인 상태가 되어 업그레이드에 실패할 때 사용자가 이해하기에는 너무 모호한 일반적인 UPGRADE_EXCEPTION
상태 경고가 발생했습니다.
이번 릴리스에서는 호스트가 오프라인 상태가 되어 업그레이드에 실패하면 Cephadm에서 특정 상태 경고 UPGRADE_OFFLINE_HOST
를 발생시키고 이제 사용자에게 문제가 투명하게 표시됩니다.
--verbose
가 전달되지 않은 경우 모든 Cephadm 로그가 cephadm.log
에 더 이상 로그인되지 않음
이전에는 gather-facts
와 같은 일부 Cephadm 명령이 실행될 때마다 대량의 명령 출력으로 로그를 스팸했습니다. 어떤 경우에는 분당 한 번이었습니다.
이번 릴리스에서는 --verbose
가 전달되지 않은 경우 Cephadm에서 모든 로그가 cephadm.log
에 더 이상 로그인되지 않습니다. 이전에 작성된 대부분의 스팸이 더 이상 존재하지 않기 때문에 cephadm.log
를 더 쉽게 읽을 수 있습니다.