Milvus 독립형 확장

Milvus Standalone은 단일 머신 서버 배포입니다. Milvus Standalone의 모든 구성 요소는 단일 Docker 이미지에 포함되어 있어 배포가 편리합니다. 이 항목에서는 이 모드에서 실행 중인 Milvus 인스턴스를 확장하는 방법에 대해 설명합니다.

전제 조건

Docker 또는 Docker Compose로 Milvus Standalone을 배포할 때 배포 스크립트(standalone_embed.sh) 또는 구성 파일(docker-compose.yml)은 여러 볼륨을 생성하고 이를 호스트 디렉터리에 매핑하여 데이터 지속성을 보장합니다.

이러한 방식으로 배포된 Milvus 인스턴스를 확장하려면 기존 컨테이너 또는 컨테이너 스택을 중지 및 제거하고, 업데이트된 구성 설정으로 Milvus Standalone을 다시 배포하고, 호스트에서 지속된 데이터를 재사용하여 새 인스턴스를 시작해야 합니다.

다음 표에는 호스트와 컨테이너 간의 볼륨 매핑이 나와 있습니다.

배포 옵션

호스트 경로

컨테이너 경로

Docker

$(pwd)/volumes/milvus

/var/lib/milvus

$(pwd)/embedEtcd.yaml

/milvus/configs/embedEtcd.yaml

$(pwd)/user.yaml

/milvus/configs/user.yaml

도커 컴포즈

${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd(milvus-etcd)

/etcd

${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio(밀버스-미니오)

/minio_data

${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus(밀버스-스탠다드얼론)

/var/lib/milvus

이 가이드의 절차를 실행하기 전에 데이터가 위의 호스트 경로에 지속되는지 확인하세요.

Docker를 사용하여 배포된 인스턴스 확장하기

현재 실행 중인 Milvus 인스턴스를 확장하려면 인스턴스를 중지하고 컨테이너를 제거한 다음 새 설정과 지속된 데이터로 인스턴스를 다시 배포해야 합니다.

구체적인 절차는 다음과 같습니다:

  1. docker stats milvus-standalone 을 실행하여 Milvus 인스턴스에 할당된 CPU 및 메모리를 확인합니다. 출력은 다음과 비슷해야 합니다:

    CONTAINER ID   NAME                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O       BLOCK I/O         PIDS
    917da667f2ff   milvus-standalone   6.10%     171.8MiB / 3.886GiB   4.32%     1.57kB / 0B   1.01GB / 1.79MB   31
    

    명령 출력에서 Milvus 인스턴스의 현재 리소스 사용량을 확인할 수 있습니다.

  2. 컨테이너를 중지하고 제거합니다.

    $ docker stop milvus-standalone
    $ docker rm milvus-standalone
    
  3. standalone_embed.sh 스크립트 파일을 찾아 docker run 명령을 실행하고 리소스 제한을 추가합니다.

    ...
        sudo docker run -d \
            --name milvus-standalone \
            --security-opt seccomp:unconfined \
            -e ETCD_USE_EMBED=true \
            -e ETCD_DATA_DIR=/var/lib/milvus/etcd \
            -e ETCD_CONFIG_PATH=/milvus/configs/embedEtcd.yaml \
            -e COMMON_STORAGETYPE=local \
            -v $(pwd)/volumes/milvus:/var/lib/milvus \
            -v $(pwd)/embedEtcd.yaml:/milvus/configs/embedEtcd.yaml \
            -v $(pwd)/user.yaml:/milvus/configs/user.yaml \
            -p 19530:19530 \
            -p 9091:9091 \
            -p 2379:2379 \
            --health-cmd="curl -f http://localhost:9091/healthz" \
            --health-interval=30s \
            --health-start-period=90s \
            --health-timeout=20s \
            --health-retries=3 \
            --memory="4g" \          # New memory limit
            --cpus="2.0" \           # New CPU limit
            milvusdb/milvus:v2.5.11 \
            milvus run standalone  1> /dev/null
    
  4. 영구 데이터가 standalone_embed.sh 스크립트와 같은 폴더에 있는지 확인하고 다음과 같이 스크립트를 실행합니다:

    sudo  bash standalone_embed.sh start
    
  5. docker stats milvus-standalone 을 실행하여 스케일링 후 Milvus 인스턴스에 할당된 CPU 및 메모리를 확인합니다. 출력은 다음과 비슷해야 합니다:

    CONTAINER ID   NAME                CPU %     MEM USAGE / LIMIT   MEM %     NET I/O       BLOCK I/O        PIDS
    7aea450f87ce   milvus-standalone   7.52%     210.9MiB / 4GiB     5.15%     1.05kB / 0B   610kB / 8.19kB   29
    

Docker Compose를 사용하여 배포된 인스턴스 스케일링하기

현재 실행 중인 Milvus 인스턴스를 확장하려면 인스턴스를 중지하고 컨테이너 스택을 제거한 다음 새 설정과 지속된 데이터로 인스턴스를 다시 배포해야 합니다.

구체적인 절차는 다음과 같습니다:

  1. docker stats milvus-standalone 을 실행하여 Milvus 인스턴스에 할당된 CPU 및 메모리를 확인합니다. 출력은 다음과 비슷해야 합니다:

    CONTAINER ID   NAME                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O       BLOCK I/O         PIDS
    917da667f2ff   milvus-standalone   6.10%     171.8MiB / 3.886GiB   4.32%     1.57kB / 0B   1.01GB / 1.79MB   31
    

    명령 출력에서 Milvus 인스턴스의 현재 리소스 사용량을 확인할 수 있습니다.

  2. 컨테이너 스택을 중지하고 제거합니다.

    $ docker compose down
    
  3. docker-compose.yml 구성 파일을 찾아 독립 실행형 섹션을 찾은 다음 리소스 제한을 추가합니다.

    ...
      standalone:
        container_name: milvus-standalone
        image: milvusdb/milvus:v2.5.8
        command: ["milvus", "run", "standalone"]
        deploy:
          resources:
            limits:
              cpus: "2"   # new cpu limits
              memory: 4G  # new memory limits
        security_opt:
        - seccomp:unconfined
        environment:
          ETCD_ENDPOINTS: etcd:2379
          MINIO_ADDRESS: minio:9000
        volumes:
          - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
        healthcheck:
          test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
          interval: 30s
          start_period: 90s
          timeout: 20s
          retries: 3
        ports:
          - "19530:19530"
          - "9091:9091"
        depends_on:
          - "etcd"
          - "minio"
    
  4. 영구 데이터를 사용할 수 있는지 확인하고 다음과 같이 docker compose 을 실행합니다:

    docker compose up -d
    
  5. docker stats milvus-standalone 을 실행하여 스케일링 후 Milvus 인스턴스에 할당된 CPU 및 메모리를 확인합니다. 출력은 다음과 비슷해야 합니다:

    CONTAINER ID   NAME                CPU %     MEM USAGE / LIMIT   MEM %     NET I/O       BLOCK I/O        PIDS
    7aea450f87ce   milvus-standalone   7.52%     210.9MiB / 4GiB     5.15%     1.05kB / 0B   610kB / 8.19kB   29
    

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
피드백

이 페이지가 도움이 되었나요?