移転前のサイトからの転記です。日付は当時のものを使用しています。文言などは若干修正を入れています(7年前なので表現が若くて恥ずかしい)。
前回の記事まででRAID構築が完了したのでその他ソフトウェア設定を実施します。
Sambaの設定
ストレージサーバはネットワーク下で使用するためファイル共有機能であるSambaの設定を実施します。
# smbpasswd -a kannami
New SMB password:
Retype new SMB password:
Added user kannami.
# systemctl start smb.service
# systemctl start nmb.service
# systemctl enable smb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
# systemctl enable nmb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nmb.service to /usr/lib/systemd/system/nmb.service.
# firewall-cmd --permanent --add-service=samba --zone=public
success
# firewall-cmd --reload
success
# setsebool -P samba_enable_home_dirs on
ブート・OSディスクの複製
ストレージディスクはRAID5で冗長化されていますが、OSはUSBメモリにインストールしておりRAIDに組み込まれていません。USBメモリの破損に備え、バイナリレベルでまるっきり同じUSBメモリを複製(クローン)することにしました。
クローンはddコマンドにて実施します。ddコマンドはパーティション外に存在する先頭セクタも含め、バイナリレベルでデータを取り出せる強力なコマンドです。単純にコピーするだけではMBRなどにはアクセスできませんが、ddコマンドなら可能なためブートデバイスも複製できます。
ただし入出力の順序を間違えるなど、ちょっとしたミスでシステムが破壊されるため注意が必要です。コマンド仕様はdd if=[コピー元] of=[ コピー先 ]で、bsオプションで一度にコピーするサイズを指定します。bs値によってコピー時間やメモリ使用量をコントロールすることが可能で、一般には4MB, 16MB, 32MBが指定されることが多いです。メモリが足りないとスワップして速度が落ちるためギリギリを狙ってチューニングする人も居るらしいですが、特に性能は求めていないため4MBとして実行しました。ddコマンドの詳しい使い方はdd でディスクをコピーするよく使う例を参照しました。
複製に際し、コピー元とコピー先のデバイスファイルを知っておく必要があります。Linuxカーネルが起動時に出力したメッセージを表示するコマンドdmesg
で確認できるようですが、今回は普通にGUI上で確認しました。まず、コピー元のデバイスファイルは以下から/dev/sdfだと分かります。ついでにパーティション情報も確認しておきます。
続いてコピー先のUSBメモリを差し込んだところ、スペアディスク追加時と同様に、特にマウントなどすることなくGUI上でディスクを確認することができました。デバイスファイルが/dev/sdgであること、パーティションはsdg1とsdg2に分かれていることを確認します。
以下のコマンドで複製を実施します。結果を見ると25分で完了していますが、いつ終わるのか分からなくて結構焦りました(後に知りましたが、進行状況は別のbashを起動して確認することもできるらしいです)。
# dd if=/dev/sdf of=/dev/sdg bs=4MB
4004+1 レコード入力
4004+1 レコード出力
16018046976 バイト (16 GB) コピーされました、 1505.38 秒、 10.6 MB/秒
複製後の/dev/sdgの状態は以下の通りでした。綺麗に複製されています。USBメモリを差し替えて起動したところ何のエラーもなく起動できたため一安心です。
OpenSSHの設定
今回作ったサーバはその辺りの棚にでも置いておいて電源のON/OFFだけで運用したいと考えています。つまりモニタは勿論、キーボードやマウスも取り外して市販のNASのように運用できることを目指します。これらの入出力装置は主にログイン・シャットダウンのために使用していますが、現時点でサーバが持っている機能はファイル共有機能 (Samba) のみで、SambaはOSが起動すれば有効になる設定としたためログインの必要はありません。つまり何かしらの操作で安全にシャットダウンできれば良いと考えます。
実現方法はいくつかありますが、ターミナルエミュレータ (リモートログオンクライアント) を使って別PCからネットワーク経由でログインし、CUIコマンドでシャットダウンするのが一般的なようです。そのためにはセキュア通信プロトコルのSSHを設定する必要があり、OpenSSHというパッケージを導入する必要があります。
と思っていたら、CentOS7ではデフォルトでSSHサーバーがインストールされているとのこと。試してみたところ、ホストPCからTeraTermを使って普通にアクセスできました。早速シャットダウンしてみたいので、コマンドはかと調べてみたところ、これも色んな種類がありました。3.4. 電源の切り方(シャットダウン)いろいろ | $ cat user Linuxによると、一般的にはshutdown
コマンドが使用されるらしいです。
shutdown
コマンドは管理者用のコマンドが配置されているディレクトリ“/sbin”にあるらしく、場所を明示して実行しないとうまくいかない場合があるとのことです。直ちにシャットダウンする場合は、以下のように実行します。
# /sbin/shutdown -h now
上記の“now”を“10”とすると10分後にシャットダウンとなります。また “-h” を “r” とすると再起動となります。使い所は現時点で浮かびませんが、頭の片隅に置いておくことにします。
また上記コマンドには代用コマンドであるhalt
というものがあります。実はこのコマンドを初めに試していたのですが、実行後に “System halted” と表示されたままストールしてしまったため使っていません。後に調べたところ、既にシステムは停止していて物理ボタンで安全に電源が切れる状態とのことでした。パワーマネジメント機能があるPCでLinuxカーネルの再構築を行うか、初めからパワーマネジメント機能を有効にしているLinuxカーネルを使っている場合はshutdownの完了でPCの電源が自動的にOFFされるといった情報もあり、いずれにしてもややこしいため、電源ののON/OFFはshutdown
コマンドで実施することにしました。
その他の設定
- システムアップデートを通知バナーで促されたので実施。
- yumコマンドを利用したパッケージのアップデート。
以上です。