🚀 완전 관리형 Milvus인 Zilliz Cloud를 무료로 체험해보세요—10배 더 빠른 성능을 경험하세요! 지금 체험하기>>

milvus-logo
LFAI
홈페이지
  • 도구

S3 환경 전반의 인스턴스 간 마이그레이션

이 주제에서는 각 인스턴스가 서로 다른 오브젝트 스토리지를 사용하여 한 Milvus 인스턴스에서 컬렉션을 백업하고 다른 인스턴스로 복원하는 프로세스에 대해 자세히 설명합니다.

개요

아래 다이어그램은 서로 다른 오브젝트 스토리지를 사용하는 백업 및 복원 프로세스를 보여줍니다.

multi-storage-backup-and-restore.png 다중 스토리지 백업 및 복원.png

서로 다른 오브젝트 스토리지를 사용하는 milvus_Amilvus_B 이라는 두 개의 Milvus 인스턴스가 있다고 가정합니다. 이 예제에서는 다음 작업을 완료하는 것이 목표입니다:

  1. milvus_A 의 오브젝트 스토리지 bucket_Acoll 컬렉션에 대한 백업(my_backup)을 생성합니다.

  2. milvus_B 의 오브젝트 스토리지에 있는 bucket_B 으로 백업 my_backup 을 전송합니다.

bucket_B 에서 백업에서 복원하고 복원된 컬렉션의 이름을 coll_bak으로 지정합니다.

전제 조건

  • 밀버스 백업 도구가 설치되어 있는지 확인합니다.

  • Milvus 개체 스토리지 설정 구성에 익숙해집니다. 자세한 내용은 개체 스토리지를 참조하세요.

milvus_A에서 컬렉션 백업하기

1단계: 구성 준비

milvus-backup 프로젝트의 디렉토리로 이동하여 configs라는 이름의 디렉토리를 만듭니다:

mkdir configs
cd configs

백업 구성 파일을 다운로드합니다 backup.yaml:

wget https://raw.githubusercontent.com/zilliztech/milvus-backup/main/configs/backup.yaml

파일 구조는 다음과 같습니다:

├── configs
│   └── backup.yaml
├── milvus-backup
└── README.md

2단계: 구성 파일 편집

backup.yaml 파일을 수정하여 milvus_A에 적합한 구성을 설정합니다:

  • 연결 구성

    # milvus proxy address, compatible to milvus.yaml
    milvus:
      address: milvus_A
      port: 19530
      authorizationEnabled: false
      # tls mode values [0, 1, 2]
      # 0 is close, 1 is one-way authentication, 2 is two-way authentication.
      tlsMode: 0
      user: "root"
      password: "Milvus"
    
    • milvus.address: milvus_A 서버의 IP 주소 또는 호스트 이름.

    • milvus.port: Milvus 서버가 수신 대기 중인 TCP 포트(기본값 19530).

  • 스토리지 구성(MinIO/S3 설정)

    # Related configuration of minio, which is responsible for data persistence for Milvus.
    minio:
      # cloudProvider: "minio" # deprecated use storageType instead
      storageType: "minio" # support storage type: local, minio, s3, aws, gcp, ali(aliyun), azure, tc(tencent)
      
      address: minio_A # Address of MinIO/S3
      port: 9000   # Port of MinIO/S3
      accessKeyID: minioadmin  # accessKeyID of MinIO/S3
      secretAccessKey: minioadmin # MinIO/S3 encryption string
      useSSL: false # Access to MinIO/S3 with SSL
      useIAM: false
      iamEndpoint: ""
      
      bucketName: "bucket_A" # Milvus Bucket name in MinIO/S3, make it the same as your milvus instance
      rootPath: "files" # Milvus storage root path in MinIO/S3, make it the same as your milvus instance
    
      # only for azure
      backupAccessKeyID: minioadmin  # accessKeyID of MinIO/S3
      backupSecretAccessKey: minioadmin # MinIO/S3 encryption string
      
      backupBucketName: "bucket_A" # Bucket name to store backup data. Backup data will store to backupBucketName/backupRootPath
      backupRootPath: "backup" # Rootpath to store backup data. Backup data will store to backupBucketName/backupRootPath
    
  • minio.bucketName: 밀버스_A에서 데이터 저장에 사용되는 버킷의 이름입니다. 이 예제에서는 bucket_A 로 설정합니다.

  • minio.rootPath: milvus_A의 데이터가 저장되는 버킷 내 루트 경로입니다. 이 예에서는 files 로 설정합니다.

  • minio.backupBucketName: 백업 스토리지에 사용되는 버킷의 이름입니다. 이 예에서는 bucket_A 로 설정합니다.

  • minio.backupRootPath: 백업 파일을 저장하기 위해 지정된 버킷 내 루트 경로 milvus_B. 이 예에서는 backup 으로 설정합니다.

3단계: 백업 만들기

backup.yaml이 저장되면 my_backup 이라는 이름의 백업을 만듭니다:

./milvus-backup create -c coll -n my_backup

이 명령은 milvus_A 의 오브젝트 스토리지에 bucket_A/backup/my_backup 백업을 생성합니다.

백업을 milvus_B로 수동으로 전송합니다.

milvus_Amilvus_B 는 서로 다른 오브젝트 스토리지를 사용하므로, milvus_A 의 스토리지에서 백업을 수동으로 다운로드하여milvus_B 의 스토리지에 업로드해야 합니다.

MinIO 콘솔 사용

  1. MinIO 콘솔에 로그인합니다.

  2. milvus_A의 minio.address에 지정된 버킷을 찾습니다.

  3. 버킷에서 백업 파일을 선택합니다.

  4. 다운로드를 클릭하여 파일을 컴퓨터로 다운로드합니다.

mc 클라이언트 사용

또는 mc 클라이언트를 사용하여 백업 파일을 다운로드할 수 있습니다:

  1. MinIO 호스트를 구성합니다:
# configure a Minio host
mc alias set my_minio https://<minio_endpoint> <accessKey> <secretKey>
  1. 사용 가능한 버킷을 나열합니다:
# List the available buckets
mc ls my_minio
  1. 버킷을 반복적으로 다운로드합니다:
# Download a bucket recursively
mc cp --recursive my_minio/<your-bucket-path> <local_dir_path>

백업 파일이 다운로드되면 나중에 복원을 위해 milvus_B 에서 사용하는 객체 스토리지에 업로드할 수 있습니다. 또는 Zilliz Cloud에 백업을 업로드하여 데이터로 관리형 벡터 데이터베이스를 생성할 수 있습니다. 자세한 내용은 밀버스에서 질리즈 클라우드로 마이그레이션하기를 참조하세요.

백업에서 milvus_B로 복원하기

1단계: 복원 설정 구성

2단계를 반복하여 milvus_B 로 복원하기 위한 구성을 수정하고 minio.bucketNamebucket_B 로 설정되어 있는지 확인합니다.

다음은 구성 예시입니다:

# milvus proxy address, compatible to milvus.yaml
milvus:
  address: milvus_B
  port: 19530
  authorizationEnabled: false
  # tls mode values [0, 1, 2]
  # 0 is close, 1 is one-way authentication, 2 is two-way authentication.
  tlsMode: 0
  user: "root"
  password: "Milvus"
  
# Related configuration of minio, which is responsible for data persistence for Milvus.
minio:
  # cloudProvider: "minio" # deprecated use storageType instead
  storageType: "minio" # support storage type: local, minio, s3, aws, gcp, ali(aliyun), azure, tc(tencent)
  
  address: minio_B # Address of MinIO/S3
  port: 9000   # Port of MinIO/S3
  accessKeyID: minioadmin  # accessKeyID of MinIO/S3
  secretAccessKey: minioadmin # MinIO/S3 encryption string
  useSSL: false # Access to MinIO/S3 with SSL
  useIAM: false
  iamEndpoint: ""
  
  bucketName: "bucket_B" # Milvus Bucket name in MinIO/S3, make it the same as your milvus instance
  rootPath: "files" # Milvus storage root path in MinIO/S3, make it the same as your milvus instance

  # only for azure
  backupAccessKeyID: minioadmin  # accessKeyID of MinIO/S3
  backupSecretAccessKey: minioadmin # MinIO/S3 encryption string
  
  backupBucketName: "bucket_B" # Bucket name to store backup data. Backup data will store to backupBucketName/backupRootPath
  backupRootPath: "backup" # Rootpath to store backup data. Backup data will store to backupBucketName/backupRootPath

2단계: 백업에서 복원

백업을 milvus_B 으로 복원합니다:

./milvus-backup restore -c coll -n my_backup -s _bak

이 명령은 백업을milvus_B 의 coll_bak이라는 새 컬렉션으로 복원하고 milvus_B 의 오브젝트 스토리지 내 bucket_B/files/insert_log/[ID of new collection] 에 데이터를 저장합니다.

Try Managed Milvus for Free

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

Get Started
피드백

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