🚀 Coba Zilliz Cloud, Milvus yang sepenuhnya terkelola, secara gratis—rasakan performa 10x lebih cepat! Coba Sekarang>>

milvus-logo
LFAI
Beranda
  • Panduan Administrasi
  • Home
  • Docs
  • Panduan Administrasi

  • Konfigurasi

  • Koordinator HA

Koordinator HA

Seperti yang ditunjukkan dalam arsitektur Milvus, Milvus terdiri dari banyak komponen dan membuatnya bekerja secara terdistribusi. Di antara semua komponen, Milvus memastikan ketersediaan yang tinggi dari para pekerja melalui peningkatan dan penurunan skala dari node, menjadikan koordinator sebagai satu-satunya mata rantai yang lemah dalam rantai.

Gambaran Umum

Dalam rilis 2.2.3, Milvus mengimplementasikan ketersediaan tinggi untuk koordinator untuk membuatnya bekerja dalam mode siaga aktif, memitigasi kemungkinan titik kegagalan tunggal (SPoF) yang dapat menyebabkan tidak tersedianya layanan.

Coordinator HA Koordinator HA

Gambar di atas mengilustrasikan bagaimana koordinator bekerja dalam mode siaga aktif. Ketika sepasang koordinator memulai, mereka mendaftar ke etcd menggunakan ID server mereka dan bersaing untuk mendapatkan peran aktif. Koordinator yang berhasil menyewa peran aktif dari etcd akan mulai melayani, dan koordinator lain dalam pasangan tersebut akan tetap siaga, mengawasi peran aktif dan siap melayani jika koordinator aktif mati.

Aktifkan koordinator HA

Dengan Helm

Untuk memulai beberapa koordinator dan membuat mereka bekerja dalam mode siaga aktif, anda harus membuat perubahan berikut ini pada berkas values.yaml.

  • Atur xxxCoordinator.replicas ke 2.
  • 2. Atur xxxCoordinator.activeStandby.enabled menjadi true.

Cuplikan kode berikut ini menggunakan RootCoord sebagai contoh. Anda dapat melakukan hal yang sama pada koordinator jenis lain.

rootCoordinator:
  enabled: true
  # You can set the number of replicas greater than 1 only if you also need to set activeStandby.enabled to true.
  replicas: 2  # Otherwise, remove this configuration item.
  resources: {}
  nodeSelector: {}
  affinity: {}
  tolerations: []
  extraEnv: []
  heaptrack:
    enabled: false
  profiling:
    enabled: false  # Enable live profiling
  activeStandby:
    enabled: true  # Set this to true to have RootCoordinators work in active-standby mode.

Dengan Docker

Untuk memulai beberapa koordinator dan membuatnya bekerja dalam mode siaga-aktif, Anda dapat menambahkan beberapa definisi ke berkas docker-compose yang Anda gunakan untuk memulai klaster Milvus.

Cuplikan kode berikut ini menggunakan RootCoord sebagai contoh. Anda dapat melakukan hal yang sama pada koordinator jenis lain.

  rootcoord:
    container_name: milvus-rootcoord
    image: milvusdb/milvus:v2.2.3
    command: ["milvus", "run", "rootcoord"]
    environment:
      ETCD_ENDPOINTS: etcd:2379
      MINIO_ADDRESS: minio:9000
      PULSAR_ADDRESS: pulsar://pulsar:6650
      ROOT_COORD_ADDRESS: rootcoord:53100
      # add ROOT_COORD_ENABLE_ACTIVE_STANDBY to enable active standby
      ROOT_COORD_ENABLE_ACTIVE_STANDBY: true
    depends_on:
      - "etcd"
      - "pulsar"
      - "minio"

#   add the following to have RootCoords work in active-standby mode
#   rootcoord-1:
#    container_name: milvus-rootcoord-1
#    image: milvusdb/milvus:v2.2.3
#    command: ["milvus", "run", "rootcoord"]
#    environment:
#      ETCD_ENDPOINTS: etcd:2379
#      MINIO_ADDRESS: minio:9000
#      PULSAR_ADDRESS: pulsar://pulsar:6650
#      ROOT_COORD_ADDRESS: rootcoord-1:53100
#      # add ROOT_COORD_ENABLE_ACTIVE_STANDBY to enable active standby
#      ROOT_COORD_ENABLE_ACTIVE_STANDBY: true
#    depends_on:
#      - "etcd"
#      - "pulsar"
#      - "minio"

Dengan shell Mac/Linux

Untuk memulai beberapa koordinator dan membuatnya bekerja dalam mode siaga aktif, Anda dapat

  1. Unduh kode sumber Milvus ke drive lokal Anda, dan mulai sebuah cluster Milvus dari kode sumber sebagai berikut:

    sudo ./scripts/start_cluster.sh
    

    Milvus akan berjalan dengan hanya satu koordinator dari setiap jenis pada akhir langkah ini.

  2. Perbarui milvus.yaml untuk mengubah nomor port dari koordinator setiap jenis. Berikut ini menggunakan rootCoord sebagai contoh.

    rootCoord:
      address: localhost
      port: 53100 # change to 53001
    
  3. Mulai koordinator siaga.

    sudo nohup ./bin/milvus run rootcoord > /tmp/rootcoord2.log 2>&1 &
    

    Pada akhir langkah ini, jalankan perintah berikut untuk memverifikasi bahwa dua proses koordinator ada.

    ps aux|grep milvus
    

    Keluarannya seharusnya mirip dengan

    > ps aux|grep milvus
    root        12813   0.7 0.2 410709648   82432   ??  S   5:18PM  0:33.28 ./bin/milvus run rootcoord
    root        12816   0.5 0.2 409487968   62352   ??  S   5:18PM  0:22.69 ./bin/milvus run proxy
    root        17739   0.1 0.3 410289872   91792 s003  SN  6:01PM  0:00.30 ./bin/milvus run rootcoord
    ...
    

    Dan koordinator siaga mengeluarkan entri log setiap sepuluh detik sebagai berikut:

    [INFO] [sessionutil/session_util.go:649] ["serverName: rootcoord is in STANDBY ..."]
    
  4. Matikan koordinator aktif pada pasangan dan perhatikan perilaku koordinator siaga.

    Anda dapat menemukan bahwa dibutuhkan 60 detik bagi koordinator siaga untuk mengambil alih peran aktif.

    [2022/09/21 11:58:33.855 +08:00] [DEBUG] [sessionutil/session_util.go:677] ["watch the ACTIVE key"] [DELETE="key:\"by-dev/meta/session/rootcoord\" mod_revision:167 "]
    [2022/09/21 11:58:33.856 +08:00] [DEBUG] [sessionutil/session_util.go:677] ["watch the ACTIVE key"] [DELETE="key:\"by-dev/meta/session/rootcoord-15\" mod_revision:167 "]
    [2022/09/21 11:58:33.856 +08:00] [INFO] [sessionutil/session_util.go:683] ["stop watching ACTIVE key"]
    [2022/09/21 11:58:33.856 +08:00] [INFO] [sessionutil/session_util.go:655] ["start retrying to register as ACTIVE service..."]
    [2022/09/21 11:58:33.859 +08:00] [INFO] [sessionutil/session_util.go:641] ["register ACTIVE service successfully"] [ServerID=19]
    [2022/09/21 11:58:33.859 +08:00] [INFO] [sessionutil/session_util.go:690] ["quit STANDBY mode, this node will become ACTIVE"]
    [2022/09/21 11:58:33.859 +08:00] [INFO] [rootcoord/root_coord.go:638] ["rootcoord switch from standby to active, activating"]
    [2022/09/21 11:58:33.859 +08:00] [INFO] [rootcoord/root_coord.go:306] ["RootCoord Register Finished"]
    [2022/09/21 11:58:33.859 +08:00] [DEBUG] [rootcoord/service.go:148] ["RootCoord start done ..."]
    [2022/09/21 11:58:33.859 +08:00] [DEBUG] [components/root_coord.go:58] ["RootCoord successfully started"]
    

Koordinator HA dinonaktifkan secara default. Anda dapat mengaktifkan fitur ini secara manual dengan mengubah item berikut dalam file konfigurasi Milvus Anda.

Batasan

Saat ini, tidak ada jaminan konsistensi yang kuat antara layanan aktif dan siaga. Oleh karena itu, koordinator siaga perlu memuat ulang metadata saat mengambil alih peran aktif.

Etcd melepaskan sewa hanya setelah sesi saat ini habis. Batas waktu sesi secara default adalah 60 detik. Oleh karena itu, ada jeda 60 detik antara saat koordinator aktif mati dan saat koordinator siaga mengambil alih peran aktif.

Coba Milvus yang Dikelola secara Gratis

Zilliz Cloud bebas masalah, didukung oleh Milvus dan 10x lebih cepat.

Mulai
Umpan balik

Apakah halaman ini bermanfaat?