검색

9장. Ceph 블록 장치 Python 모듈 사용

download PDF

rbd python 모듈은 Ceph 블록 장치 이미지에 대한 파일과 유사한 액세스를 제공합니다. 이 내장 도구를 사용하려면 rbdrados Python 모듈을 가져옵니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 노드에 대한 루트 수준 액세스.

프로세스

  1. RADOS에 연결하고 IO 컨텍스트를 엽니다.

    cluster = rados.Rados(conffile='my_ceph.conf')
    cluster.connect()
    ioctx = cluster.open_ioctx('mypool')
  2. 이미지를 생성하는 데 사용하는 :class:rbd.RBD 오브젝트를 인스턴스화합니다.

    rbd_inst = rbd.RBD()
    size = 4 * 1024**3  # 4 GiB
    rbd_inst.create(ioctx, 'myimage', size)
  3. 이미지에서 I/O를 수행하려면 :class:rbd.Image 오브젝트를 인스턴스화합니다.

    image = rbd.Image(ioctx, 'myimage')
    data = 'foo' * 200
    image.write(data, 0)

    처음 600바이트의 이미지에 'foo'를 작성합니다. 데이터는 :type:unicode - librbd:c:type:char 보다 큰 문자를 처리하는 방법을 알 수 없습니다.

  4. 이미지, IO 컨텍스트 및 RADOS에 대한 연결을 종료합니다.

    image.close()
    ioctx.close()
    cluster.shutdown()

    안전하게 하려면 이러한 호출 각각이 별도의 :finally 블록 내에 있어야 합니다.

    import rados
    import rbd
    
    cluster = rados.Rados(conffile='my_ceph_conf')
    try:
        ioctx = cluster.open_ioctx('my_pool')
        try:
            rbd_inst = rbd.RBD()
            size = 4 * 1024**3  # 4 GiB
            rbd_inst.create(ioctx, 'myimage', size)
            image = rbd.Image(ioctx, 'myimage')
            try:
                data = 'foo' * 200
                image.write(data, 0)
            finally:
                image.close()
        finally:
            ioctx.close()
    finally:
        cluster.shutdown()

    이는 번거로울 수 있으므로 Rados,IoctxImage 클래스를 자동으로 종료하거나 종료하는 컨텍스트 관리자로 사용할 수 있습니다. 컨텍스트 관리자로 사용하면 위의 예는 다음과 같습니다.

    with rados.Rados(conffile='my_ceph.conf') as cluster:
        with cluster.open_ioctx('mypool') as ioctx:
            rbd_inst = rbd.RBD()
            size = 4 * 1024**3  # 4 GiB
            rbd_inst.create(ioctx, 'myimage', size)
            with rbd.Image(ioctx, 'myimage') as image:
                data = 'foo' * 200
                image.write(data, 0)
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.