S3などクラウドサービスに付きもののオブジェクトストレージは容量課金やトラフィック課金など従量制とはいえ費用がかかる。
実際にサービス提供をして費用が賄えるのであればそれで良いのだけど、S3 APIのテストやデモでお客さんに使って貰う時などはビクビクしながら使う必要がある。
なので、LeoFSとかオープンソースで構築が出来るオブジェクトストレージが存在するのだけど、これもAIサーバのまぁまぁスペック良いやつを最小3台。出来れば5台必要とか言われちゃうのだ。
Amazon Simple Storage Service (S3) Developer Guide (English Edition)
- 作者: Amazon Web Services
- 発売日: 2012/03/30
- メディア: Kindle版
- この商品を含むブログを見る
そんな訳で今回はminioを使ってみる。
こいつはGoでプログラムが書かれてらしい。うむぅ・・・Goなんてハイカラ(w)な言語は知らないしインストール面倒だったら諦めるかって思ってたら、ダウンロードしたバイナリに実行権限を付けるだけやったwww
cd /usr/local/src
wget https://dl.minio.io/server/minio/release/linux-amd64/minio
chmod +x minio
起動はとっても簡単。
mkdir /data
./minio server /data
という感じ。
ただ、これだと&を付けるかScreenで走らせておくかをしないといけない。
そんなわけで起動スクリプトを作ってくれてる人が居たのでそのまま拝借。
vi /etc/init.d/minio
============================================================
### BEGIN INIT INFO
# Provides: minio
# Required-Start: $local_fs $network $remote_fs
# Should-Start: $time
# Required-Stop: $local_fs $network $remote_fs
# Should-Stop:
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: start and stop Minio Server
# Description: Minio Server
### END INIT INFO
# 64-bit Intel https://dl.minio.io/server/minio/release/linux-amd64/minio
# 32-bit Intel https://dl.minio.io/server/minio/release/linux-386/minio
# 32-bit ARM https://dl.minio.io/server/minio/release/linux-arm/minio
# 64-bit ARM https://dl.minio.io/server/minio/release/linux-arm64/minio
# 32-bit ARMv6 https://dl.minio.io/server/minio/release/linux-arm6vl/minio
# How to install
# sudo wget "https://dl.minio.io/server/minio/release/linux-{ ARCH }/minio" -O /usr/bin/minio
# sudo chmod 755 /usr/bin/minio
prog="minio"
user="root"
cmd="/path/to/minio"
fspath="/path/to/s3-test"
mkdir -p "/var/run/$prog/"
pid_file="/var/run/$prog/$prog.pid"
cmd_args="server $fspath"
case "$1" in
"start")
start-stop-daemon --start --user $user --exec $cmd --make-pidfile --pidfile $pid_file -- $cmd_args &
result=$?
if [ $result != "0" ]
then
pid=`cat $PIDFILE`
echo "daemon is already running. (pid=${pid})"
exit 1
fi
;;
"stop")
start-stop-daemon --stop --user $user --pidfile $pid_file
result=$?
if [ $result != "0" ]
then
echo "daemon is not running. (check $pid_file)."
exit 1
fi
rm -f $PIDFILE
;;
esac
============================================================
起動スクリプトを公開してくれてたサイト
しかしながら、CentOSにはstart-stop-daemonなんてコマンドは無いんだなぁ・・・(--;)
どうもDebian系にはあるそうな。
cd /usr/local/src
wget http://developer.axis.com/download/distribution/apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz
tar zxvf apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz
cd apps/sys-utils/start-stop-daemon-IR1_9_18-2/
さて、makeをしたいところだけど、どうもgccで単純に実行ファイルを作る方が何かと面倒にならないらしいので、えぃやぁとコンパイル
gcc start-stop-daemon.c -o start-stop-daemon
最初、出力オプションを付け忘れてa.outなんてファイルが出来たのは内緒(笑)
作成されたstart-stop-daemonをpathが通ったところに移動
mv start-stop-daemon /usr/bin/
後は自動実行するように登録しとけばOK
checkconfig minio on
service minio start
ちなみに、minioの設定ファイルは/root/.minio/config.jsonに作成されている。
この中にアクセスキーやシークレットキーも書いてあるのでご注意を(^^;)
ブラウザでhttp://IPアドレス:9000/でアクセスするとバケットを作成したり出来るのだけど、不要になったバケットを削除する方法がわからんです(--;)
APIを使えば消せるのはわかってるのだけど、GUIからは消せんのか??
知ってる人が居たら教えて欲しいのねw
さて・・・途中で気づいている人も居たかもしれないが、なぜ6系なんだって話だ。
単純にデータセンターで動いてた使ってないサーバがScientific Linux 6.7だったからってだけだ。
CentOS7で使いたい場合はこんなブログ見ないで、こんなサイトを見た方が絶対に良い。というか6系でもここを見るよりも他の人がもっと詳しくかいてるぞwww
うむぅ・・・Go言語とか勉強した方が良いのかねぇ?