• Milvusについて
  • はじめに
  • 概念
  • ユーザーガイド
  • データのインポート
  • AIツール
  • 管理ガイド
  • ツール
  • 連携機能
  • チュートリアル
  • よくある質問
  • API Reference

Docker Compose または Helm を使用したメッセージストレージの設定

Milvus は、最近の変更履歴のログ管理、ストリームログの出力、およびログのサブスクリプションの提供に Pulsar または Kafka を使用します。Pulsar がデフォルトのメッセージストレージシステムです。このトピックでは、Docker Compose または Helm を使用したメッセージストレージの設定方法について説明します。

Pulsar はDocker Composeまたは K8s 上で設定でき、Kafka は K8s 上で設定できます。

メッセージキューの制限事項:Milvus v2.6.24 へのアップグレード時には、現在のメッセージキューの選択を維持する必要があります。アップグレード中に異なるメッセージキューシステムへ切り替えることはサポートされていません。メッセージキューシステムの変更に関するサポートは、将来のバージョンで提供される予定です。

Docker Compose を使用した Pulsar の設定

1. Pulsar の設定

Docker Compose を使用して Pulsar を設定するには、milvus/configs パスにあるmilvus.yaml ファイル内の `pulsar ` セクションに値を指定します。

pulsar:
  address: localhost # Address of pulsar
  port: 6650 # Port of pulsar
  maxMessageSize: 5242880 # 5 * 1024 * 1024 Bytes, Maximum size of each message in pulsar.

詳細については、Pulsar 関連の設定を参照してください。

2. Milvusの実行

以下のコマンドを実行して、Pulsarの設定を使用したMilvusを起動します。

docker compose up
設定は、Milvusの起動後にのみ有効になります。詳細については、「Milvusの起動」を参照してください。

Helm を使用した Pulsar の設定

K8s上のMilvusクラスタの場合、Milvusを起動するコマンド内でPulsarを設定できます。あるいは、Milvusを起動する前に、milvus-helmリポジトリの/charts/milvusパスにあるvalues.yml ファイルを使用してPulsarを設定することもできます。

Helm を使用した Milvus の設定方法の詳細については、「Helm チャートによる Milvus の設定」を参照してください。Pulsar に関連する設定項目の詳細については、「Pulsar に関連する設定」を参照してください。 |

YAML ファイルの使用

  1. values.yaml ファイル内のexternalConfigFiles セクションを設定します。
extraConfigFiles:
  user.yaml: |+
    pulsar:
      address: localhost # Address of pulsar
      port: 6650 # Port of Pulsar
      webport: 80 # Web port of pulsar, if you connect direcly without proxy, should use 8080
      maxMessageSize: 5242880 # 5 * 1024 * 1024 Bytes, Maximum size of each message in pulsar.
      tenant: public
      namespace: default    
  1. 前述のセクションを設定し、values.yaml ファイルを保存した後、次のコマンドを実行して、Pulsarの設定を使用するMilvusをインストールします。
helm install <your_release_name> milvus/milvus -f values.yaml

Helm を使用した Woodpecker の設定

K8s上のMilvusクラスタの場合、Milvusを起動するコマンド内でWoodpeckerを設定できます。あるいは、Milvusを起動する前に、milvus-helmリポジトリの /charts/milvus パスにあるvalues.yml ファイルを使用してWoodpeckerを設定することもできます。

Helm を使用した Milvus の設定方法の詳細については、「Helm チャートによる Milvus の設定」を参照してください。Woodpecker に関連する設定項目の詳細については、「Woodpecker 関連の設定」を参照してください。 |

YAML ファイルの使用

  1. values.yaml ファイル内のexternalConfigFiles セクションを設定します。
extraConfigFiles:
  user.yaml: |+
    woodpecker:
      meta:
        type: etcd # The Type of the metadata provider. currently only support etcd.
        prefix: woodpecker # The Prefix of the metadata provider. default is woodpecker.
      client:
        segmentAppend:
          queueSize: 10000 # The size of the queue for pending messages to be sent of each log.
          maxRetries: 3 # Maximum number of retries for segment append operations.
        segmentRollingPolicy:
          maxSize: 256M # Maximum size of a segment.
          maxInterval: 10m # Maximum interval between two segments, default is 10 minutes.
          maxBlocks: 1000 # Maximum number of blocks in a segment
        auditor:
          maxInterval: 10s # Maximum interval between two auditing operations, default is 10 seconds.
      logstore:
        segmentSyncPolicy:
          maxInterval: 200ms # Maximum interval between two sync operations, default is 200 milliseconds.
          maxIntervalForLocalStorage: 10ms # Maximum interval between two sync operations local storage backend, default is 10 milliseconds.
          maxBytes: 256M # Maximum size of write buffer in bytes.
          maxEntries: 10000 # Maximum entries number of write buffer.
          maxFlushRetries: 5 # Maximum size of write buffer in bytes.
          retryInterval: 1000ms # Maximum interval between two retries. default is 1000 milliseconds.
          maxFlushSize: 2M # Maximum size of a fragment in bytes to flush.
          maxFlushThreads: 32 # Maximum number of threads to flush data
        segmentCompactionPolicy:
          maxSize: 2M # The maximum size of the merged files.
          maxParallelUploads: 4 # The maximum number of parallel upload threads for compaction.
          maxParallelReads: 8 # The maximum number of parallel read threads for compaction.
        segmentReadPolicy:
          maxBatchSize: 16M # Maximum size of a batch in bytes.
          maxFetchThreads: 32 # Maximum number of threads to fetch data.
      storage:
        type: minio # The Type of the storage provider. Valid values: [minio, local]
        rootPath: /var/lib/milvus/woodpecker # The root path of the storage provider.    
  1. 前述のセクションを設定し、values.yaml ファイルを保存した後、以下のコマンドを実行して、Woodpeckerの設定を使用したMilvusをインストールします。
helm install <your_release_name> milvus/milvus -f values.yaml

Helm を使用した Kafka の設定

K8s上のMilvusクラスタの場合、Milvusを起動するコマンド内でKafkaを設定できます。あるいは、Milvusを起動する前に、milvus-helmリポジトリの/charts/milvusパスにあるvalues.yml ファイルを使用してKafkaを設定することもできます。

Helm を使用した Milvus の設定方法の詳細については、「Helm チャートによる Milvus の設定」を参照してください。Pulsar 関連の設定項目に関する詳細については、「Pulsar 関連の設定」を参照してください。

YAML ファイルの使用

  1. Kafkaをメッセージストレージシステムとして使用したい場合は、values.yaml ファイル内のexternalConfigFiles セクションを設定してください。
extraConfigFiles:
  user.yaml: |+
    kafka:
      brokerList:
        -  <your_kafka_address>:<your_kafka_port>
      saslUsername:
      saslPassword:
      saslMechanisms: PLAIN
      securityProtocol: SASL_SSL    
  1. 前述のセクションを設定し、values.yaml ファイルを保存した後、次のコマンドを実行して、Kafkaの設定を使用したMilvusをインストールします。
helm install <your_release_name> milvus/milvus -f values.yaml

Helm を使用した RocksMQ の設定

Milvus スタンドアロン版では、デフォルトのメッセージストレージとして RocksMQ を使用します。Helm を使用して Milvus を設定する詳細な手順については、「Helm チャートを使用した Milvus の設定」を参照してください。RocksMQ に関連する設定項目の詳細については、「RocksMQ に関連する設定」を参照してください。

  • RocksMQ を使用して Milvus を起動し、その設定を変更したい場合は、変更後の設定を以下の YAML ファイルに記述して `helm upgrade -f ` を実行してください。

  • Helm を使用して RocksMQ 以外のメッセージストアで Milvus をスタンドアロンでインストールしており、これを RocksMQ に戻したい場合は、すべてのコレクションをフラッシュし、Milvus を停止した後、以下の YAML ファイルを使用して `helm upgrade -f ` を実行してください。

extraConfigFiles:
  user.yaml: |+
    rocksmq:
      # The path where the message is stored in rocksmq
      # please adjust in embedded Milvus: /tmp/milvus/rdb_data
      path: /var/lib/milvus/rdb_data
      lrucacheratio: 0.06 # rocksdb cache memory ratio
      rocksmqPageSize: 67108864 # 64 MB, 64 * 1024 * 1024 bytes, The size of each page of messages in rocksmq
      retentionTimeInMinutes: 4320 # 3 days, 3 * 24 * 60 minutes, The retention time of the message in rocksmq.
      retentionSizeInMB: 8192 # 8 GB, 8 * 1024 MB, The retention size of the message in rocksmq.
      compactionInterval: 86400 # 1 day, trigger rocksdb compaction every day to remove deleted data
      # compaction compression type, only support use 0,7.
      # 0 means not compress, 7 will use zstd
      # len of types means num of rocksdb level.
      compressionTypes: [0, 0, 7, 7, 7]    

メッセージストアの変更は推奨されません。どうしても変更する必要がある場合は、すべての DDL 操作を停止し、FlushAll API を呼び出してすべてのコレクションをフラッシュしてから、実際にメッセージストアを変更する前に Milvus を停止してください。

次の手順

Docker Compose または Helm を使用して、Milvus のその他の依存関係を構成する方法については、以下を参照してください: