Loading...
IT自分メモ

自宅鯖更改メモ 物理リプレイス&bcacheを利用したメディアサーバへ仕様変更

ようやく一軒家に引っ越して場所に余裕ができたので実家に置いてあったサーバの一部を引き上げてきた。
スペックなどなどのメモを置いておくぞ。

コンセプト

このホームページ含めて実は自鯖経営だったりするのだけど、前のサーバ本体は実家に(しれっと)置いてきた。
この先の戦いについてこれそうにないからな。
今までは実家のネットワークで
・このブログ(DMZ)
・VPN
・メディアサーバ
・Elasticsearch
・その他もろもろ

を動かしてたんだけど、今回はブログとVPN機能以外を引き上げることにした。
いかんせん、最近はVlog関係のデータが大きくなりすぎて10年以上前にサーバを立てたときと比べるとデータ転送に時間がかかりすぎていたためだ。
このタイミングでVlogデータの保管方法についても見直しをしたい。

ということで以下スペック

・CPU i5 13500T

今までのサーバはi7 7770T。C4T8でやはり今見ると若干古さを感じる。
今回はグレードこそはi5になったもののC14T20でベース消費電力は据え置きで消費電力対でスペックアップしている形だ。
最大メモリも128GBになったので拡張性も見込めるな

・MB Z690M PG Riptide/D5

マザーはいつもの通りのAsrock。
今までのサーバはMiniITXだったのだけど土地に余裕ができたので値段がお手頃なMicroATXに変更。
RAMは4枚刺さるし、ロープロのPCIも刺さるので拡張性も担保できる。

このMBは「M.2が2枚刺さって」「LANが2.5Gbps」という用件で一番安かったものだ。

ちなみに13世代対応だが、現状出荷されるものはBIOSのFlash updateが必要になる。

RAMは32GB x2で64GB構成だ。

・ストレージ

ストレージはM.2を2枚刺し、OS用の500GBとキャッシュに利用する1TBのもの。
余ってるSSDを刺して仮想OS領域に入れてもいいかもしれないな。

あとは実家に置いてあった16TBのハードディスクを2つ移管しておしまい。

電気代が怖いが・・・まぁなんとかなるだろう(楽観視)

ストレージは実は16TBからリプレイスしたいところさん。
今は4TB x 5のRAID5で16TBx2だけど、今のHDDなら1機で32TBにできるんだよな~と。

まぁ、そこまでデータ使う?って話なので今後データの保管方法については要件等だな。

仕様変更

今までは、Windows Server2016の上でCentOSを仮想で建ててそこでSmbdを実行して共有ディスクを展開していたんだけど
CentOSはすっかりEOSLだし、現状の仕様ではスペックにも限界がでてきたのでここらで仕様を変更することにした。

まずOSはubuntuに変更。これはUbuntu時代の優位性というよりかは後述のbcacheの導入が圧倒的にubuntsuの方が楽だったためだ。

Bcache

Bcacheについては上を見るのが一番データがそろっているのだけど、つまるところ「HDDの保存領域に対してSSDのキャッシュ領域をソフトウェア的に紐づけて書き込みを高速化しよう」という内容のソフトウェアになる。
現在の物理構成であれば、USB3.0の転送速度が規格5Gbps、製品仕様で2Gbps。
ネットワークが2.5Gbps。
さらにいうとHDDの転送がRAND5で精々300~400Mbps。
つまりLANのPCからサーバにデータ転送するときにHDDへの書き込みが大きなボトルネックになる。

これを先述のM.2領域をキャッシュに中てることで400Mbpsの書き込み部分をM.2の製品提示速度である2.5GBbpsまで引き上げようという内容のものになる。

これはメモなので参考になるレベルではないが一応残しておくと

データ領域の新規作成

1.WindowsのHyper-v上で容量固定で仮想HDDを作成する。
・M.2領域にキャッシュ用の仮想HDD
・HDD領域に保存用の仮想HDD
をそれぞれ作成。

2.ubuntuに接続。/dev/sd〇で見えてくるのでこれを以下のコマンドで紐づける。

make-bcache -B /dev/物理的にHDDのほう -C /dev/物理的にM.2のほう

すると「/dev/bcache〇」(最初に作成したならbcache0のはず)が生成されるはずだ。
これをフォーマットしてやる。

parted /dev/bcache0

↑のあと好きにフォーマットする。のちに容量を拡張したいなら0%から作成することを強くお勧めしたい。

mkfs -t ext4 /dev/bcache0

そしてさらにblkidでUUIDを調べる

blkid /dev/bcache0

ここで表示されたUUIDをfstabに書き込めばマウントまで完了だ。
細かい設定は他のページ見てください。

領域の拡張

領域の拡張も可能だ。
ただし、partedでパーテイション作成するときに0%から作成しないと非常に面倒。
理屈的には「データ保存領域が同じセグメントから作成されてるならデータは保持される」というものを利用しているためだ。

・Hyper-v上でHDDの領域を拡張する。

Ubuntu上で以下のオペレーション

・マウント済みの場合はumantする。

parted /dev/bcache0
(parted) print

現在の内容を確認。おそらく古い容量のままのはずだ。

(parted) rm 1

※パーテイションが1つの場合の想定、複数の場合はちょっとわからんです。
既存のパーティションを削除。

(parted) mkpart
start 0%
end 100%
(parted) print

再度確認する。もしかすると容量に変化が無いかもしれないが、その場合はOSを再起動する。

mount -a

fstabにUUIDが書いてあること前提、領域を再度マウントする。

df -h

おそらく古い領域で表示されるはずだ。
ここで以下のコマンドを実行する。

resize2fs /dev/bcache0

これで領域が拡張される。再度df -hで結果を確認しよう。

 

ここまで読んでくれた人で察しがいい人ならお気づきだと思いますが、既存の領域に適応はできない。
あくまで新規で作成した環境にのみ利用可能という形だ。
とりあえずこれ使って既存の構成を徐々に移し替えていこうと思う。


使ってるストレージはこちら(1世代古い奴だけど)