Kubernetesお勉強その4【環境構築】GlusterFSインストール(冗長分散ストレージ構築)

 Kubernetesの環境構築自体はできたもののストレージをどうするか色々と調べていて、なんとなく分散ストレージで3台冗長構成で組んでみたくなりました。調べているとCepthとGlusterFSとか色々とあるらしいですが

お手軽に使用したいことからKubernetesを入れている仮想マシンにGlusterFSを入れることにしました(本当は分けたほうがいいんだろうけど、そのままストレージ使えたほうが楽かと思って同居させることにしました。)相変わらずのコピペっぷりでインストール、構築まで完了させ3台構成で無事にレプリカまでできました。

◆作業手順

# 1.追加パーテーションの作成
$ sudo fdisk /dev/sda
fdisk (util-linux 2.34) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。

GPT PMBR size mismatch (104857599 != 167772159) will be corrected by write.
The backup GPT table is not on the end of the device. This problem will be corrected by write.

コマンド (m でヘルプ): p

ディスク /dev/sda: 80 GiB, 85899345920 バイト, 167772160 セクタ
Disk model: Virtual Disk

~中略~

デバイス   開始位置  最後から    セクタ サイズ タイプ
/dev/sda1      2048   1050623   1048576   512M EFI システム
/dev/sda2   1050624   3147775   2097152     1G Linux ファイルシステム
/dev/sda3   3147776 104855551 101707776  48.5G Linux ファイルシステム

コマンド (m でヘルプ): n
パーティション番号 (4-128, 既定値 4): 4
最初のセクタ (104855552-167772126, 既定値 104855552): 104855552
Last sector, +/-sectors or +/-size{K,M,G,T,P} (104855552-167772126, 既定値 167772126): 167772126

新しいパーティション 4 をタイプ Linux filesystem、サイズ 30 GiB で作成しました。

# 2.ラベル付与
$ sudo parted /dev/sda4
GNU Parted 3.3
/dev/sda4 を使用
~中略~
(parted) mklabel gpt
~中略~
できませんでした。おそらく、使用中だったのが原因だと思われます。そのため、古いパーティション情報がそのまま使われます。さらなる変更をする前に再起動してください。

無視(I)/Ignore/取消(C)/Cancel? I

# 3.パーテーション作成
(parted) mkpart
パーティションの名前?  []? storage
ファイルシステムの種類?  [ext2]? ext4
開始? 0%
終了? 100%
~中略~
できませんでした。おそらく、使用中だったのが原因だと思われます。そのため、古いパーティション情報がそのまま使われます。さらなる変更をする前に再起動してください。

無視(I)/Ignore/取消(C)/Cancel? I

(parted) q
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。

# 4.ext4で一旦フォーマットして認識できていることを確認
$ sudo mkfs -t ext4 /dev/sda4
$ sudo mkdir /mnt/glusterfs
$ sudo mount -t ext4 /dev/sda4 /mnt/glusterfs
$ df -h
$ sudo umount /mnt/glusterfs

# 5.xfsで再フォーマット
$ sudo wipefs /dev/sda4 -a
$ sudo mkfs -t xfs /dev/sda4
$ sudo mkdir -p /glusterfs
$ sudo mount -t xfs /dev/sda4 /glusterfs
$ echo "# glusterfs" | sudo tee -a /etc/fstab
$ echo "/dev/sda4 /glusterfs xfs defaults 0 0" | sudo tee -a /etc/fstab
$ df -h

# 6.FireWall開放
$ sudo ufw allow from 192.168.0.0/24 to any port 111
$ sudo ufw allow from 192.168.0.0/24 to any port 2409
$ sudo ufw allow from 192.168.0.0/24 to any proto tcp port 24007:24020
$ sudo ufw allow from 192.168.0.0/24 to any proto tcp port 38465:38490
$ sudo ufw allow from 192.168.0.0/24 to any proto tcp port 49152:49199
$ sudo ufw status

# 7.GlusterFSインストール・起動
$ sudo apt -y install glusterfs-server
$ sudo systemctl start glusterd
$ sudo systemctl enable glusterd
$ sudo mkdir /glusterfs/kube-storage

# 8.ノード接続(1号機のみで実行)
$ sudo gluster peer status
$ sudo gluster peer probe kube-srv2
$ sudo gluster peer probe kube-srv3
$ sudo gluster peer status

# 9.冗長ボリューム設定(1号機のみで実行)
$ sudo gluster volume create vol_kube replica 3 transport tcp \
kube-cl-srv1:/glusterfs/kube-storage \
kube-srv2:/glusterfs/kube-storage \
kube-srv3:/glusterfs/kube-storage

# 10.ボリューム起動(1号機のみで実行)
$ sudo gluster volume start vol_kube
volume start: vol_kube: success
$ sudo gluster vol info

# 11.マウント設定(3台ともで設定)
$ echo "# glustervolume" | sudo tee -a /etc/fstab
$ echo "kube-cl1-srv:/vol_kube /mnt/kubestorage glusterfs defaults,_netdev,backupvolfile-server=kube-cl2-srv:kube-cl3-srv 1 2" | sudo tee -a /etc/fstab
$ sudo mount -a


◆参考サイト

・GlusterFS

https://nkhnd.hatenablog.jp/entry/2021/03/24/001012

https://qiita.com/Yuki-Inamoto/items/2ea1efe862aeba34019c

https://dev.classmethod.jp/articles/glusterfs-on-ec2/

https://sungup.github.io/2020/06/22/GlusterFS-on-Ubuntu.html

https://www.server-world.info/query?os=Ubuntu_18.04&p=glusterfs&f=6

https://www.nttpc.co.jp/technology/gluster_fs.html

https://developer.aiming-inc.com/misc/cephfs%E3%81%A8glusterfs%E3%81%AE%E6%80%A7%E8%83%BD%E6%AF%94%E8%BC%83%E6%A4%9C%E8%A8%BC/

https://blog.1q77.com/2017/05/building-ha-nfs-server-part1/

http://tech.farend.jp/blog/2015/01/24/glusterfs/

https://sononi.com/memo/2019/06/13/glusterfsusage/

https://access.redhat.com/documentation/ja-jp/red_hat_gluster_storage/3.5/html/administration_guide/sect-creating_replicated_volumes

https://qiita.com/kawaz/items/89ab0796735d0683b72a

https://web.chaperone.jp/w/index.php?GlusterFS


・仮想ディスク拡張(Hyper-V)

https://atmarkit.itmedia.co.jp/ait/articles/0909/18/news119.html


・パーテーション分割、フォーマット

https://qiita.com/r_saiki/items/894de9660607af22ab2e

https://atmarkit.itmedia.co.jp/ait/articles/1803/01/news034.html

https://qiita.com/centipede/items/ae181fcb76f549514918

https://www2.yukawa.kyoto-u.ac.jp/~koudai.sugimoto/dokuwiki/doku.php?id=ubuntu:%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%E3%81%AE%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88


よく考えたらXFSにせずにそのままext4でもよかったんだなぁと思いました。
メイン参考にしたラズパイの人のがXFSだったのでそれをまねたのでXFSでした。
でも、まずは冗長構成できたのでここからKubernetesから使っていくということですが、
どうやって設定するかは試行錯誤状態。
GlusterFSに直接プロビジョニングするとか色々とあるらしいですが、非エンジニアな自分にはよく分からんとです。
次回はGlusterFSとKubernetes組み合わせて何とかできればと思っています。

コメント

このブログの人気の投稿

証券外務員1種勉強(計算式暗記用メモ)

GASでGoogleDriveのサブフォルダとファイル一覧を出力する

マクロ経済学(IS-LM分析)