Docker Managed Plugin でNetApp Docker Volume Plugin (ONTAP, SolidFire) を試す

nDVPのインストールからボリューム作成まで

makotow
makotow’s blog clone
10 min readJul 23, 2017

--

NetApp Docker Volume Plugin Overview

以前は各ホストに Docker Volume Plugin をインストールしていましたが、Docker version 1.13 以降はdocker コマンドで docker volume plugin をインストール可能となりました。

今回は docker volume plugin を使用したNetAppのインテグレーションを再度紹介します。

最後にこの記事で設定している内容を一括で設定する ansible-playbookを公開していますのでお試しで使ってみたい場合はこちらも活用ください。

Docker Managed Plugin system

Docker Managed Plugin system は Docker イメージで plugin を配布する方法です。Docker Engine を使用してplugin のインストール、開始・停止・削除を行うことができるようになります。

今回紹介する内容・環境

今回の記事で検証した環境は以下の通りです。
HostOSから docker コマンドを使用してストレージ側にボリュームの操作ができるところまでの設定を本記事で記載します。

今回検証した環境

事前に docker や必要なパッケージ、設定事項は導入済みである前提です。

また、ONTAP上ではNFSサービスを提供しているSVMが作成済み、SolidFireでは ndvp用のユーザ(本記事ではdockerユーザ)が作成されていることを前提としています。

参考までに以下のURLにホストOS、ストレージの事前準備コマンドを公開しました。

docker volume plugin を使用して nDVP をインストール

今まで使用していた conf ファイルなどの変更は必要ありません。(詳細は本家ドキュメント参照)

ただし、以前はコマンドラインからプロセスを起動する手法で起動時に設定ファイルを設定できましたが、docker plugin としてインストールした場合はdocker コマンドで設定をします。

インストールしたプラグインを確認します。 インストール時に — disable オプションを付与したためplugin は停止している状態(ENABLED列がfalse)です。

設定ファイルのパスをインストール後にpluginへ設定するため今回は無効に設定しています。

SolidFire 用のプラグインをインストールします。

Docker volume plugin の設定を編集するための以下の手順 で設定を変更します。

  1. ndvp にセットする設定フォルダ・ファイルを作成します。
  2. その後、plugin に設定ファイルのパスを設定します。

※ /etc/netappdvp のフォルダのオーナー、権限は適切に変更してください。

設定ファイルの作成をします。まずはONTAP用の設定ファイルを作成

SolidFire用も作成します。

作成した設定ファイルを plugin に設定します。

設定後に ndvp を有効にします。

plugin が有効化されたことを確認します。

Volumeの作成を行います。

Docker volume create コマンド実行時のドライバを変更することで保存するバックエンドのストレージを変更することができます。

以上で、 docker manged plugin を使用した場合の一連の手順になります。

便利なオプション

docker volume create時に -oでオプションを指定することでストレージのネイティブ機能を使用することができます。

ここでは一番わかり易いボリュームのクローンを試します。
-o で fromでコピー元となるボリュームの指定、fromSnapshot でボリュームが保有するsnapshotを指定することでストレージ側のクローンニングのAPIを実行する動作になります。

  • -d: docker volume ドライバの指定
  • -o from: コピーもととなるボリュームの指定
  • -o fromSnapshot: ボリュームが保有するSnapshotの指定 (指定しない場合は、その時点のsnapsohtが作成される。

プロビジョニングの自動化

お試しで使ってみたいという方向けに一括でdocker のインストール、ndvp のインストール、設定を含めて実施できる ansible-playbook を作成しました。

用途に応じて使用いただければと思います。

ぜひスターをつけてください。プルリクエスト大歓迎です。

技術情報

--

--

makotow
makotow’s blog clone

kubernetes/container/docker/Programming/Go/Scala/Ruby/Mac/Emacs/IntelliJ/Rust/OpenShift.