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

milvus-logo
LFAI
  • Home
  • Blog
  • Milvus 백업 도구 사용 방법: 단계별 가이드

Milvus 백업 도구 사용 방법: 단계별 가이드

  • Engineering
September 27, 2024
Michael Mo

Milvus는 고차원 벡터 임베딩을 통해 수십억 규모의 비정형 데이터를 저장, 색인, 검색할 수 있는 확장성이 뛰어난 오픈 소스 고성능 벡터 데이터베이스입니다. 검색 증강 생성(RAG), 시맨틱 검색, 멀티모달 검색, 추천 시스템과 같은 최신 AI 애플리케이션을 구축하는 데 적합합니다. Milvus는 노트북부터 대규모 분산 시스템에 이르기까지 다양한 환경에서 효율적으로 실행됩니다. 오픈 소스 소프트웨어와 클라우드 서비스로 제공됩니다.

MilvusBackup은 Milvus 데이터를 백업 및 복원하는 도구입니다. 다양한 애플리케이션 시나리오를 수용하기 위해 CLI와 API를 모두 제공합니다. 이 가이드는 Milvus Backup을 사용하는 과정을 안내하여 백업 요구 사항을 자신 있게 처리할 수 있도록 도와드립니다.

준비

백업 또는 복원 프로세스를 시작하기 전에 환경을 설정해야 합니다:

1. Milvus 백업 리포지토리 릴리스에서최신 바이너리를 다운로드합니다. 사용 중인 운영 체제에 적합한 버전을 선택합니다:

  • macOS의 경우: milvus-backup_Darwin_arm64.tar.gz 또는 milvus-backup_Darwin_x86_64.tar.gz

  • Linux의 경우: milvus-backup_Linux_arm64.tar.gz 또는 milvus-backup_Linux_x86_64.tar.gz

2. GitHub에서구성 파일을 다운로드합니다.

3. tar 파일을 원하는 디렉터리에 압축을 풀고 압축을 푼 동일한 폴더 내의 configs/ 디렉터리에 backup.yaml 을 넣습니다. 디렉토리 구조가 다음과 같이 표시되는지 확인합니다:

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

명령 개요

터미널로 이동하여 도구의 명령어를 숙지합니다:

1. 일반 도움말: milvus-backup help 을 입력하여 사용 가능한 명령어와 플래그를 확인합니다.

milvus-backup is a backup&restore tool for milvus.

Usage:
 milvus-backup [flags]
 milvus-backup [command]

Available Commands:
 check       check if the connects is right.
 create      create subcommand create a backup.
 delete      delete subcommand delete backup by name.
 get         get subcommand get backup by name.
 help        Help about any command
 list        list subcommand shows all backup in the cluster.
 restore     restore subcommand restore a backup.
 server      server subcommand start milvus-backup RESTAPI server.

Flags:
     --config string   config YAML file of milvus (default "backup.yaml")
 -h, --help            help for milvus-backup

Use "milvus-backup [command] --help" for more information about a command.

2. 백업 만들기: milvus-backup create --help 을 입력하면 백업 생성에 대한 구체적인 도움말을 볼 수 있습니다.

Usage:
 milvus-backup create [flags]

Flags:
 -n, --name string                   backup name, if unset will generate a name automatically
 -c, --colls string                  collectionNames to backup, use ',' to connect multiple collections
 -d, --databases string              databases to backup
 -a, --database_collections string   databases and collections to backup, json format: {"db1":["c1", "c2"],"db2":[]}
 -f, --force                         force backup, will skip flush, should make sure data has been stored into disk when using it
     --meta_only                     only backup collection meta instead of data
 -h, --help                          help for create

3. 백업 복원하기: 백업을 복원하는 방법을 이해하려면 milvus-backup restore --help 을 사용합니다.

Usage:
 milvus-backup restore [flags]

Flags:
 -n, --name string                   backup name to restore
 -c, --collections string            collectionNames to restore
 -s, --suffix string                 add a suffix to collection name to restore
 -r, --rename string                 rename collections to new names, format: db1.collection1:db2.collection1_new,db1.collection2:db2.collection2_new
 -d, --databases string              databases to restore, if not set, restore all databases
 -a, --database_collections string   databases and collections to restore, json format: {"db1":["c1", "c2"],"db2":[]}
     --meta_only                     if true, restore meta only
     --restore_index                 if true, restore index
     --use_auto_index                if true, replace vector index with autoindex
     --drop_exist_collection         if true, drop existing target collection before create
     --drop_exist_index              if true, drop existing index of target collection before create
     --skip_create_collection        if true, will skip collection, use when collection exist, restore index or data
 -h, --help                          help for restore

백업/복원 사용 사례

특정 요구사항과 구성에 따라 밀버스 백업 도구를 효과적으로 적용할 수 있는 몇 가지 사용 사례가 있습니다:

  1. 단일 Milvus 인스턴스 내에서: 동일한 Milvus 서비스 내에서 컬렉션을 새 컬렉션으로 복사합니다.

  2. 하나의 버킷으로 단일 S3의 Milvus 인스턴스 간: 루트 경로가 다르지만 동일한 S3 버킷을 사용하는 Milvus 인스턴스 간에 컬렉션을 전송합니다.

  3. 서로 다른 S3 버킷에 있는 Milvus 인스턴스 간: 동일한 S3 서비스 내에서 서로 다른 S3 버킷 간에 컬렉션을 전송합니다.

  4. 서로 다른 S3 서비스 간: 서로 다른 S3 서비스를 사용하는 Milvus 인스턴스 간에 컬렉션을 복사합니다.

각 사용 사례를 자세히 살펴보겠습니다.

사용 사례 1: 하나의 Milvus 인스턴스 내에서 백업 및 복원

동일한 Milvus 인스턴스 내에서 컬렉션을 백업 및 복원합니다. "coll"이라는 이름의 컬렉션을 동일한 S3 버킷을 사용하여 "coll_bak"으로 백업 및 복원한다고 가정합니다.

구성:

  • Milvus는 bucket_A 를 스토리지로 사용합니다.

  • MinIO 구성을 사용합니다:

minio:
 address: localhost # 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
 ssl:
   tlsCACert: /path/to/public.crt # path to your CACert file, ignore when it is empty
 bucketName: bucket_A # Bucket name in MinIO/S3
 rootPath: files # The root path where the message is stored in MinIO/S3

백업 워크플로

1. Milvus와 MinIO가 올바른 위치를 가리키도록 backup.yaml 을 구성합니다.

# 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: localhost # 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

2. 명령을 사용하여 백업을 생성합니다.

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

이 명령은 백업을 bucket_A/backup/my_backup 에 저장합니다.

3. 백업을 새 컬렉션에 복원합니다.

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

이렇게 하면 동일한 Milvus 인스턴스 내에서 "coll"이 "coll_bak"으로 복원됩니다.

Figure: The Backup and Restore Workflow Within One Milvus Instance 그림: 하나의 Milvus 인스턴스 내 백업 및 복원 워크플로

그림: 하나의 Milvus 인스턴스 내 백업 및 복원 워크플로

사용 사례 2: 하나의 S3 버킷을 공유하는 두 Milvus 인스턴스 간 백업 및 복원

한 Milvus 인스턴스에서 컬렉션을 백업하고 동일한 S3 버킷을 사용하지만 루트 경로가 다른 다른 인스턴스로 복원합니다. milvus_A에 "coll"이라는 컬렉션이 있다고 가정하고, 이를 "coll_bak"이라는 새 컬렉션으로 백업하여 milvus_B에 복원합니다. 두 Milvus 인스턴스는 스토리지로 동일한 버킷 "bucket_A"를 공유하지만 루트 경로는 서로 다릅니다.

구성

  • Milvus A는 files_A 를 루트 경로로 사용합니다.

  • Milvus B는 files_B 를 루트 경로로 사용합니다.

  • Milvus A의 MinIO 구성:

minio:
 address: localhost # 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
 ssl:
   tlsCACert: /path/to/public.crt # path to your CACert file, ignore when it is empty
 bucketName: bucket_A # Bucket name in MinIO/S3
 rootPath: files_A # The root path where the message is stored in MinIO/S3
  • Milvus B의 MinIO 구성:
minio:
 address: localhost # 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
 ssl:
   tlsCACert: /path/to/public.crt # path to your CACert file, ignore when it is empty
 bucketName: bucket_A # Bucket name in MinIO/S3
 rootPath: files_B # The root path where the message is stored in MinIO/S3

백업 워크플로

1. 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"
 # 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: milvus_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_A" # 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

2. 백업 명령을 실행합니다:

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

3. Milvus B에 대한 구성 복원

backup.yaml 을 Milvus B를 가리키도록 수정하고 MinIO 루트 경로를 조정합니다:

# 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: milvus_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_A" # Milvus Bucket name in MinIO/S3, make it the same as your milvus instance
 rootPath: "files_B" # 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

4. 복원 명령을 실행합니다:

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

Figure: The Backup and Restore Workflow Between Two Milvus Instances Sharing One S3 Bucket 그림: 하나의 S3 버킷을 공유하는 두 Milvus 인스턴스 간의 백업 및 복원 워크플로

사용 사례 3: 하나의 S3, 서로 다른 버킷에 있는 두 Milvus 인스턴스 간의 백업 및 복원

Milvus 인스턴스(Milvus_A)에서 컬렉션을 백업하고 동일한 S3 서비스 내에 있지만 다른 버킷을 사용하는 다른 Milvus 인스턴스(Milvus_B)로 복원합니다.

구성:

  • Milvus는 bucket_A 를 스토리지로 사용합니다.

  • Milvus A의 MinIO 구성:

minio:
 address: localhost # 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
 ssl:
   tlsCACert: /path/to/public.crt # path to your CACert file, ignore when it is empty
 bucketName: bucket_A # Bucket name in MinIO/S3
 rootPath: files # The root path where the message is stored in MinIO/S3
  • Milvus B에 대한 MinIO 구성:
minio:
 address: localhost # 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
 ssl:
   tlsCACert: /path/to/public.crt # path to your CACert file, ignore when it is empty
 bucketName: bucket_B # Bucket name in MinIO/S3
 rootPath: files # The root path where the message is stored in MinIO/S3

백업 및 복원 워크플로

1. 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"
 # 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: localhost # 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_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-backup create -c coll -n my_backup

3. Milvus 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: localhost # 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

4. 복원 명령을 실행합니다:

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

Figure: The Backup and Restore Workflow Between Two Milvus Instances in One S3, Different Buckets 그림: 하나의 S3, 서로 다른 버킷에 있는 두 Milvus 인스턴스 간의 백업 및 복원 워크플로

그림: 하나의 S3, 서로 다른 버킷에 있는 두 Milvus 인스턴스 간의 백업 및 복원 워크플로우

사용 사례 4: 서로 다른 S3 서비스에서 두 개의 Milvus 인스턴스 간 백업 및 복원

하나의 S3 서비스(MinIO_A)를 사용하여 Milvus_A에서 "coll"이라는 이름의 컬렉션을 백업하고, 각 인스턴스가 서로 다른 스토리지 버킷을 사용하여 다른 S3 서비스(MinIO_B)를 사용하여 Milvus_B로 복원하는 것을 용이하게 하기 위해, 각 인스턴스가 서로 다른 스토리지 버킷을 활용합니다.

구성

  • Milvus A용 MinIO 구성:
minio:
 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
 ssl:
   tlsCACert: /path/to/public.crt # path to your CACert file, ignore when it is empty
 bucketName: bucket_A # Bucket name in MinIO/S3
 rootPath: files # The root path where the message is stored in MinIO/S3
  • Milvus B용 MinIO 구성
 minio:
 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
 ssl:
   tlsCACert: /path/to/public.crt # path to your CACert file, ignore when it is empty
 bucketName: bucket_B # Bucket name in MinIO/S3
 rootPath: files # The root path where the message is stored in MinIO/S3

백업 및 복원 워크플로

1. 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"
 # 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

2. 백업 명령을 실행합니다:

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

3. 백업 전송

S3 호환 도구 또는 SDK를 사용하여 minio_A:bucket_A/backup/my_backup 에서 minio_B:bucket_B/backup/my_backup 으로 백업을 수동으로 복사합니다.

4. Milvus 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

5. 복원 명령을 실행합니다:

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

Figure: The Backup and Restore Workflow Between Two Milvus Instances Across Different S3 Services 그림: 서로 다른 S3 서비스에서 두 Milvus 인스턴스 간의 백업 및 복원 워크플로

그림: 서로 다른 S3 서비스에서 두 Milvus 인스턴스 간의 백업 및 복원 워크플로

구성 파일 설명

configs/backup.yaml 파일을 편집하여 백업 설정을 사용자 환경에 맞게 조정하세요. 다음은 구성 옵션에 대한 분석입니다:

로깅: 로깅 수준 및 출력 기본 설정을 구성합니다.

# Configures the system log output.
log:
 level: info # Only supports debug, info, warn, error, panic, or fatal. Default 'info'.
 console: true # whether print log to console
 file:
   rootPath: "logs/backup.log"

Milvus 연결: Milvus 인스턴스에 대한 연결 세부 정보를 설정합니다.

# milvus proxy address, compatible to milvus.yaml
milvus:
 address: localhost
 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"

MinIO 구성: 백업이 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: localhost # 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: "a-bucket" # 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: "a-bucket" # 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

결론

Milvus 백업 도구는 Milvus 인스턴스 내부 및 전체에서 컬렉션을 백업하고 복원할 수 있는 강력한 솔루션을 제공합니다. 단일 인스턴스 내에서 백업을 관리하든, 동일한 S3 서비스의 인스턴스 간에 백업을 관리하든, 서로 다른 S3 서비스 간에 백업을 관리하든, milvus-backup은 유연하고 정확하게 모든 것을 처리합니다.

핵심 사항

  1. 다용도성: Milvus-backup은 간단한 인스턴스 내 백업부터 복잡한 서비스 간 복원에 이르기까지 다양한 시나리오를 지원합니다.

  2. 구성 유연성: backup.yaml 파일을 적절하게 구성함으로써 사용자는 다양한 스토리지 설정 및 네트워크 구성을 수용하여 특정 요구 사항에 맞게 백업 및 복원 프로세스를 사용자 지정할 수 있습니다.

  3. 보안 및 제어: S3 버킷과 경로를 직접 조작하면 데이터 저장 및 보안을 제어할 수 있어 백업을 안전하고 권한이 있는 사용자만 액세스할 수 있습니다.

효과적인 데이터 관리는 애플리케이션에서 Milvus의 잠재력을 최대한 활용하기 위해 매우 중요합니다. Milvus 백업 도구를 숙달하면 복잡한 분산 환경에서도 데이터의 내구성과 가용성을 보장할 수 있습니다. 이 가이드는 사용자가 강력한 백업 전략을 구현하고 모범 사례와 효율적인 데이터 처리 기술을 촉진할 수 있도록 지원합니다.

개발자, 데이터 엔지니어, IT 전문가 등 누구든 Milvus 백업 도구를 이해하고 활용하면 안정적이고 효율적인 데이터 관리 솔루션을 제공함으로써 프로젝트 성공에 크게 기여할 수 있습니다.

Like the article? Spread the word

계속 읽기