3.9.2. 씬 풀 스토리지 구성


Docker에 포함된 docker-storage-setup 스크립트를 사용하여 씬 풀 장치를 생성하고 Docker의 스토리지 드라이버를 구성할 수 있습니다. Docker를 설치한 후 이 작업을 수행할 수 있으며 이미지 또는 컨테이너를 만들기 전에 수행해야 합니다. 이 스크립트는 /etc/sysconfig/docker-storage-setup 파일에서 구성 옵션을 읽고 논리 볼륨 생성을 위한 세 가지 옵션을 지원합니다.

  • 추가 블록 장치를 사용합니다.
  • 지정된 기존 볼륨 그룹을 사용합니다.
  • 루트 파일 시스템이 있는 볼륨 그룹에서 남은 여유 공간을 사용합니다.

추가 블록 장치를 사용하는 것은 가장 강력한 옵션이지만 Docker 스토리지를 구성하기 전에 다른 블록 장치를 호스트에 추가해야 합니다. 다른 옵션 둘 다 호스트를 프로비저닝할 때 사용 가능한 공간을 남겨 두어야합니다. 루트 파일 시스템 볼륨 그룹의 사용 가능한 공간을 사용하는 것은 일부 애플리케이션에 문제가 발생하는 것으로 알려져 있습니다(예: Red Hat Mobile Application Platform (RHMAP).

  1. 다음 세 가지 옵션 중 하나를 사용하여 docker-pool 볼륨을 만듭니다.

    • 추가 블록 장치를 사용하려면 다음을 수행합니다.

      1. /etc/sysconfig/docker-storage-setup 에서1.8.0 S 를 사용할 블록 장치의 경로로 설정합니다. VG 를 볼륨 그룹 이름으로 설정하여 docker-vg 와 같이 만듭니다. 예를 들면 다음과 같습니다.

        # cat <<EOF > /etc/sysconfig/docker-storage-setup
        DEVS=/dev/vdc
        VG=docker-vg
        EOF
      2. docker-storage-setup 을 실행하고 출력을 검토하여 docker-pool 볼륨이 생성되었는지 확인합니다.

        # docker-storage-setup                                                                                                                                                                                                                                [5/1868]
        0
        Checking that no-one is using this disk right now ...
        OK
        
        Disk /dev/vdc: 31207 cylinders, 16 heads, 63 sectors/track
        sfdisk:  /dev/vdc: unrecognized partition table type
        
        Old situation:
        sfdisk: No partitions found
        
        New situation:
        Units: sectors of 512 bytes, counting from 0
        
           Device Boot    Start       End   #sectors  Id  System
        /dev/vdc1          2048  31457279   31455232  8e  Linux LVM
        /dev/vdc2             0         -          0   0  Empty
        /dev/vdc3             0         -          0   0  Empty
        /dev/vdc4             0         -          0   0  Empty
        Warning: partition 1 does not start at a cylinder boundary
        Warning: partition 1 does not end at a cylinder boundary
        Warning: no primary partition is marked bootable (active)
        This does not matter for LILO, but the DOS MBR will not boot this disk.
        Successfully wrote the new partition table
        
        Re-reading the partition table ...
        
        If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
        to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
        (See fdisk(8).)
          Physical volume "/dev/vdc1" successfully created
          Volume group "docker-vg" successfully created
          Rounding up size to full physical extent 16.00 MiB
          Logical volume "docker-poolmeta" created.
          Logical volume "docker-pool" created.
          WARNING: Converting logical volume docker-vg/docker-pool and docker-vg/docker-poolmeta to pool's data and metadata volumes.
          THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.)
          Converted docker-vg/docker-pool to thin pool.
          Logical volume "docker-pool" changed.
    • 기존 지정된 볼륨 그룹을 사용하려면 다음을 수행합니다.

      1. /etc/sysconfig/docker-storage-setup 에서 VG 를 볼륨 그룹으로 설정합니다. 예를 들면 다음과 같습니다.

        # cat <<EOF > /etc/sysconfig/docker-storage-setup
        VG=docker-vg
        EOF
      2. 그런 다음 docker-storage-setup 을 실행하고 출력을 검토하여 docker-pool 볼륨이 생성되었는지 확인합니다.

        # docker-storage-setup
          Rounding up size to full physical extent 16.00 MiB
          Logical volume "docker-poolmeta" created.
          Logical volume "docker-pool" created.
          WARNING: Converting logical volume docker-vg/docker-pool and docker-vg/docker-poolmeta to pool's data and metadata volumes.
          THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.)
          Converted docker-vg/docker-pool to thin pool.
          Logical volume "docker-pool" changed.
    • 루트 파일 시스템이 있는 볼륨 그룹에서 나머지 여유 공간을 사용하려면 다음을 수행합니다.

      1. 루트 파일 시스템이 있는 볼륨 그룹에 필요한 여유 공간이 있는지 확인한 다음 docker-storage-setup 을 실행하고 출력을 검토하여 docker-pool 볼륨이 생성되었는지 확인합니다.

        # docker-storage-setup
          Rounding up size to full physical extent 32.00 MiB
          Logical volume "docker-poolmeta" created.
          Logical volume "docker-pool" created.
          WARNING: Converting logical volume rhel/docker-pool and rhel/docker-poolmeta to pool's data and metadata volumes.
          THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.)
          Converted rhel/docker-pool to thin pool.
          Logical volume "docker-pool" changed.
  2. 구성을 확인합니다. /etc/sysconfig/docker-storage 파일에 dm.thinpooldevdocker-pool 논리 볼륨 값이 있는지 확인합니다.

    # cat /etc/sysconfig/docker-storage
    DOCKER_STORAGE_OPTIONS="--storage-driver devicemapper --storage-opt dm.fs=xfs --storage-opt dm.thinpooldev=/dev/mapper/rhel-docker--pool --storage-opt dm.use_deferred_removal=true --storage-opt dm.use_deferred_deletion=true "
    
    # lvs
      LV          VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      docker-pool rhel twi-a-t---  9.29g             0.00   0.12
    중요

    Docker 또는 OpenShift Container Platform을 사용하기 전에 docker-pool 논리 볼륨이 요구 사항을 충족할 수 있을 만큼 충분히 큰지 확인합니다. 사용 가능한 볼륨 그룹의 docker-pool 볼륨 60%를 만듭니다. LVM 모니터링을 통해 볼륨 그룹을 채우기 위해 증가합니다.

  3. Docker를 시작하거나 다시 시작합니다.

    • 호스트에서 Docker가 실행되지 않은 경우 서비스를 활성화하고 시작한 다음 실행 중인지 확인합니다.

      # systemctl enable docker
      # systemctl start docker
      # systemctl is-active docker
    • Docker가 이미 실행 중인 경우:

      1. Docker를 다시 초기화합니다.

        주의

        그러면 현재 호스트에 있는 모든 컨테이너 또는 이미지가 제거됩니다.

        # systemctl stop docker
        # rm -rf /var/lib/docker/*
        # systemctl restart docker
      2. /var/lib/docker/ 폴더의 콘텐츠를 삭제합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.