2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

docker-compose の Volume で NFS を指定して MinIO を立ち上げる

Posted at

docker-compose 上でオブジェクトの保存先を NFS サーバ上のディレクトリとした MinIO を構築します。

前提

  • NAS:
    • OS: Arch Linux
    • IP: 192.168.11.1
  • Docker Host PC:
    • OS: Ubuntu
    • IP: 192.168.11.2
    • docker, docker-compose をインストール済み

MinIO とは?

MinIO は aws S3 互換のオブジェクトストレージです。
調べてもらうといろいろな記事で紹介されていると思います。

今回はこの MinIO を docker-compose を用いて docker で構築しつつ,MinIO のコンテナに NFS をマウントしてオブジェクト自体は NAS に保存されるようにします。

NAS 側準備

今回,NAS には事前に NFS サーバのセットアップを済ませてあります。
詳細は Arch Linux を NAS 用にセットアップ - YetAnother_yk's tech blog を確認いただければ幸いです。

まずは,MinIO のオブジェクトの保存先ディレクトリ,NFS 共有のためのマウント先ディレクトリを作成します:

$ mkdir /Volume1/MinIO
$ sudo mkdir -p /srv/nfs4/MinIO

次に /etc/fstab に次の内容を追記します(ZFS の場合):

/etc/fstab
+ /Volume1/MinIO        /srv/nfs4/MinIO none        bind,defaults,nofail,x-systemd.requires=zfs-mount.service                           0 0

続いて NFS の設定します:

/etc/exports
+ /srv/nfs4/MinIO    192.168.11.2/24(rw,no_root_squash)
$ sudo mount -a  # マウントする
$ sudo exportfs -arv  # NFS 設定を反映する

ホストマシン側準備

続いて,Docker のホストマシン側の設定を行います。

NFS サーバとの通信には Tinc を使用しています。
導入方法などはこちらを確認してください →お手軽に VPN 経由のノード間通信を実現する Tinc を使ってみる - Qiita

実際に使用した docker-compose.yml は下のものです:

docker-compose.yml
version: '3.7'

services:
  minio:
    image: minio/minio
    restart: unless-stopped
    volumes:
      - ./config:/root/.minio
      - minio:/data
    ports:
      - "9000:9000"
    command: server /data
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 60s
      timeout: 20s
      retries: 3
volumes:
  minio:
    driver_opts:
      type: nfs
      o: "addr=192.168.11.1,hard,rw,nfsvers=4"
      device: ":/srv/nfs4/MinIO"

この YAML ファイルは MinIO | Deploy MinIO on Docker Compose をベースにしています。

NFS をマウントするメインの記述は以下の部分です:

docker-compose.yml
volumes:
  minio:
    driver_opts:
      type: nfs
      o: "addr=192.168.11.1,hard,rw,nfsvers=4"
      device: ":/srv/nfs4/MinIO"

o は NFS のマウント時のオプションと同様になっています。

参考

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?