Docker ComposeまたはHelmでメッセージストレージを構成する
Milvusは、最近の変更のログ管理、ストリームログの出力、ログ購読の提供にPulsarまたはKafkaを使用します。Pulsarはデフォルトのメッセージ・ストレージ・システムです。このトピックでは、Docker ComposeまたはHelmを使用してメッセージ・ストレージを設定する方法を紹介します。
Docker ComposeまたはK8s上でPulsarを構成し、K8s上でKafkaを構成することができます。
メッセージ・キューの制限Milvus v2.6.16にアップグレードする場合、現在選択しているメッセージ・キューを維持する必要があります。アップグレード中の異なるメッセージキューシステム間の切り替えはサポートされていません。メッセージ・キュー・システムの変更は、将来のバージョンでサポートされる予定です。
Docker ComposeでPulsarを構成する
1.Pulsarの構成
Docker ComposeでPulsarを設定するには、milvus/configパスの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
HelmによるPulsarの構成
K8s上のMilvusクラスタの場合、Milvusの起動と同じコマンドでPulsarを設定することができます。あるいは、Milvusを起動する前に、milvus-helmリポジトリの/charts/milvusパスにあるvalues.yml ファイルを使ってPulsarを設定することもできます。
Helmを使ったMilvusの設定方法の詳細については、Helm Chartsを使ったMilvusの設定をご参照ください。Pulsar関連の設定項目の詳細については、Pulsar関連の設定を参照してください。
YAMLファイルの使用
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
- 前述のセクションを設定し、
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 Chartsを使用したMilvusの設定を参照してください。Woodpecker関連の設定項目の詳細については、woodpecker関連の設定を参照してください。
YAMLファイルの使用
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.
- 前述のセクションを設定し、
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ファイルの使用
- メッセージ・ストレージ・システムとしてKafkaを使用する場合は、
values.yamlファイルのexternalConfigFilesセクションを設定します。
extraConfigFiles:
user.yaml: |+
kafka:
brokerList:
- <your_kafka_address>:<your_kafka_port>
saslUsername:
saslPassword:
saslMechanisms: PLAIN
securityProtocol: SASL_SSL
- 前述のセクションを設定し、
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。RocksMQ以外のメッセージストアを使用してHelmを使用して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の他の依存関係を設定する方法について説明します: