PCで遊んだ日々の備忘録

Making PC and Customization PC

Linux distribution is installed.

Linux ディストリビューションは、無償配布されている、オペレーティングシステム(OS)です。

'www.fuukemn.biz' designed this logotype.

NAS|自作機 « システムセットアップ »

下記は先般ついに寿命を迎えた NAS(市販品)に代わって 前ページ で組立てた自作パソコンのシステムセットアップの内容です。(2015/09)

使用目的は NAS(Network Attached Storage)ですが公開サーバー機やデスクトップ機にも転用出来ます。

OSは CentOS 6.7 64bit を使用し Windows共有は Sambaにて行い NASのコントロールは自宅サブネット内のホスト機からリモートにて行います。

したがってSSH、FTP、Sambaサーバーの構築とSamba-SWATのインストールが必須となります。

OSに CentOS 6.7を選んだ理由は手持ちの UPS(無停電電源装置)と連携する「停電時自動シャットダウンアプリ」を使用するためです。

UEFI BIOSの設定|ASUS J1800I-C

今回自作した NAS機 のマザーボードは ASUS製の J1800I-CでサポートしているOSは Windows8/8.1 64bitと仕様書に記載されています。

つまり Secure Bootがデフォルトとなっているため Windows8/8.1 64bit 以外のOSはインストール出来ない(させない)どころかLinuxなどのライブDVDも起動出来ないと言う訳です。

このままでは CentOSをインストール出来ないので UEFI BIOSの設定を変更します。変更するのは下記の 1ヶ所だけです。

  1. UEFI BIOSの設定画面から [Advanced Mode]に入る
  2. Secure Boot メニューを開く
  3. OS Type [ Windows UEFI mode ] → OS Type [ Other OS ]に変更
  4. 保存してパソコン再起動

これでWindows8/8.1以外の OSもインストール出来るようになりました。

HDDのパーティショニングとフォーマット

今回使用する HDDのパーティションテーブルは GPT(GUID Partition Table)とし 2台の内1台を|EFIシステム領域|OSシステム領域|SWAP|データ保存領域|の4つのパーティションに分割します。

パーティションは GPTをサポートしている最新バージョンの GParted(GNOME Partition Editor)のライブCDで作成しました。

(下の画像は説明用の Virtual Box上のスクリーンショットです)

 

OSのインストール中にもパーティション作成やフォーマットは出来るのでどちらか好きな方、やり易い方を選べばよいと思います。

残りの1台は全てデータ保存領域なので GPTを設定してファイルシステムext4でフォーマットします。またこれから先の作業を効率よく進めるために各パーティションにはラベル名を設定しておきます。

ァイルシステムについて市販の NASは XFSでフォーマットされていますがこれは ファイル転送速度の高速化やフラグメンテーション(断片化)を抑制する等の目的のためと思われます。

今回の NAS機もXFSでフォーマットしたいところなのですが残念ながら CentOS 6のデフォルトのファイルシステムは ext4なのでここは素直に ext4でフォーマットしておきます。

ちなみにデフォルトのファイルシステムが XFSとなるのは CentOS 7からです。

下記は今回作成した各HDDのパーティションの状態です。

HDD 1|セクターサイズ(論理 / 物理)512bytes / 4096bytes

パーティションテーブル:GPT システム ファイルシステム マウントポイント
第1パーティション|100 MB EFI fat16 ★1 /boot/efi
第2パーティション|30 GB CentOS 6.7 ext4 /
第3パーティション|1 GB スワップ linux-swap swap
第4パーティション|969 GB データ保存域 ext4 /media/DATA/data1
 

HDD 2|セクターサイズ(論理 / 物理)512bytes / 4096bytes

パーティションテーブル:GPT システム ファイルシステム マウントポイント
第1パーティション|1 TB データ保存域 ext4 /media/DATA/data2
 

★1 マイクロソフトの「UEFI/GPTベースのハードドライブパーティションの構成」ードライブパーティションの規則ーには

略 … The minimum size of this partition is 100 MB, and must be formatted using the FAT32 file format.… 略 
 

と記述されているのですが OSインストール後に partedコマンドでファイル形式を確認すると fat16でフォーマットされていました。フォーマットは OSのインストール中に行ったのですがインストーラー上では fat16等のファイル形式ではなく「EFI-System」と表示されていました。

CentOS 6.7 Basic Server 64bit

今回構築した NAS機 のOSは商用 Linux の RedHat Enterprise Linux のクローンであるCentOSを使用しました。

 

CentOSのインストール用isoイメージファイルの入手先は 本家 またはミラーサイトから下記のファイルをダウンロードします。

お勧めは 理研 のミラーサイトです。

ftp.riken.jp ディレクトリ:/ Linux / centos / 6.7 / isos / x86_64
isoイメージファイル CentOS-6.7-x86 64-bin-DVD1.iso
CentOS-6.7-x86 64-bin-DVD2.iso
check_sum ファイル md5sum.txt
 

現在 CentOSの最新バージョンは 7 ですがあえて前バージョンの 6.7を選びました。これは手持ちの UPS(無停電電源装置)の自動シャットダウンアプリが Red Hat Enterprise Linux 6.x と CentOS 5.xをサポートしているためです。

ここで CentOS 5.xではなく 6.7 にしたのは現時点で最新のバージョンであるのと CentOSは Red Hat Enterprise Linux のクローンOSなのでバージョンが同じならば多分自動シャットダウンアプリもインストール出来るだろうと思ったからです。

CentOS 6.7のインストールオプションは「Desktop」ではなく「Basic Server」を選択し更に管理人にとってサーバーの構築に必要と思われるパッケージを追加インストールしました。

例えば、X-Window System 、Gmoneデスクトップです。サーバーにデスクトップ?とお思いでしょうがサーバーにデスクトップが不要になるのはサーバーが稼働開始してからの話です。

サーバー構築中もコマンド操作が中心になるのは事実ですがデスクトップも併用した方が断然効率的(web検索など)だと思います。サーバーの構築が完了してからテキストモード(ランレベル:3)に変更すればよいのですから。

また今回はUPS連携の「停電時自動シャットダウン」アプリをメーカーサイトからダウンロードしてインストールするので webブラウザも必要です。

参考資料

インストールするパッケージや各種サーバー(SSH、FTP、Samba)の構築、ntpdによるシステム時刻(OS)とハードウェア時刻(マザーボード)の同期などの方法は下記のサイトを教科書にしました。

お便利サーバー.com

なお今回のインストールでは 1枚目のインストールDVDだけで完結しました。

サーバー構築の前に1

NAS機のプライベートIPアドレスを固定

現在ルーターから NAS機に割り当てられているプライベートIPアドレスは DHCP(Dynamic Host Configuration Protocol)なのでサブネット内のホスト機の使用状況によって変動します。

これはサーバーとしては不都合なので OSのインストール後 SSH、FTP、Sambaの各サーバーを構築前する前にルーター機能を使用してプライベートIPアドレスが変動しないように固定しておきます。

プライベートIPアドレス固定の設定方法はルーターの機種によって異なるのでそれぞれのマニュアルに従って設定します。

サーバー構築の前に2

SE Linuxとファイヤーウォールを無効化

SE Linuxは個々のプログラムにアクセス制限をかけるセキュリティーツールでその効力は root(スーパーユーザー)を含めた全てのユーザーに及びます。

故に設定を誤ると例えばパーミッションを解決したにもかかわらずプログラムが実行されない或いはアクセスできない等の問題が出たりするので SE Linuxの取扱いには難しいものがあります。

SE Linuxは公開サーバーで重要な情報を取り扱う場合などには必要かもしれませんが自宅内に設置するようなファイルサーバーにおいてはこのような高度な機能は不要ですしむしろ障害になりかねません。

そこで、CentOS 6.7ではこのSE Linuxがデフォルトで有効になっているのでサーバー構築の前にファイヤーウォールと共に無効化しておきます。

それでは端末から

 # nano /etc/selinux/config

を実行し SE Linuxの設定ファイルのデフォルトのコード部分をコメントアウトして

#SELINUX=enforcing
SELINUX=disabled

と記述し保存したらパソコンを再起動して次のコマンドで SE Linuxが無効になったことを確認します。

 # getenforce
 Disabled

下の画像はローカル(サブネット内ホスト機)からサーバー機にリモート接続したTeraTermのスクリーンショットです。

 

続いてファイヤーウォールの無効化はデスクトップからroot権限により設定します。下の画像はファイヤーウォールを無効化した状態のスクリーンショットです。

 

一見ファイヤーウォール有効に見えますがステータスバー左側にファイヤーウォール無効のメッセージが出ています。

HDDのマウント

今回 2台の HDDで 2つのパーティションを保存領域に設定したのでこの領域をサブネット内の Windows機や Linux機から読み書き出来るようにするためには OSにマウントする必要があります。

手動でマウントしてもよいのですが NASを再起動する度に手動マウントするのも面倒なので OS起動時に自動的にマウントする様に /etc/fstabを設定します。

その前に2つのパーティションのマウント先ディレクトリを /media/ 下に作成し Windows上から読み書き出来るようにパーミッション(権限)を変更します。

パーミッション(権限)を変更

HDD 1(sda4)をマウントするディレクトリを data1、HDD 2(sdb1)をマウントするディレクトリを data2とします。

端末から

 # mkdir -p /media/DATA/data1
 # mkdir /media/DATA/data2

-pオプション|/DATAと /data1の2つのディレクトリを作成

を実行してディレクトリが作成されたら所有者をユーザーに、パーミッションを 777に -Rオプションで変更します。

端末から

 # chown -R ユーザー名:ユーザー名/media/DATA/data1
 # chown -R ユーザー名:ユーザー名/media/DATA/data2
 # chmod -R 777 /media/DATA
自動マウントの設定

次に /etc/fstabに自動マウントの設定を記述します。このときHDDとパーティションの識別をUUIDで行うので blkidコマンドでHDDとパーティションのUUIDを表示させておきます。

端末から

 # blkid

を実行すると下記のようにHDDとパーティションの情報が表示されます。朱文字がマウントするべきパーティションです。

/dev/sda1: SEC_TYPE="msdos" UUID="9AD7-954F" TYPE="vfat"
/dev/sda2: UUID="e8f3a5b9-19af-480b-9916-78024b14287f" TYPE="ext4"
/dev/sda3: LABEL="swap" UUID="29c7d0e0-da55-40c1・・・364f25" TYPE="swap"
/dev/sda4: LABEL="data1" UUID="a6da1205-5cf2-40d・・・49aa1b5" TYPE="ext4" 
/dev/sdb1: LABEL="data2" UUID="88c8bc55-81d7-427・・・1f1d58d" TYPE="ext4" 

続けて

 # nano /etc/fstab

を実行しblkidコマンドで表示させた UUIDと HDDのマウント先などを最終行に下記のように記述し保存します。

上記 "data1"、"data2" と下記 /data1、/data2について|2者の名称は同じである必要はありません 説明用に同じ名称にしているだけなのでパーティションが判別できれば何でもよいです

   ⋮
UUID=a6da1205-5cf2-40d・・・49aa1b5 /media/DATA/data1  ext4  defaults  0 0 
UUID=88c8bc55-81d7-427・・・1f1d58d /media/DATA/data2  ext4  defaults  0 0 
 

下の画像はサブネット内ホスト機上の端末(TeraTerm)から見た /etc/fstab設定後のスクリーンショットです。

 

実際には構築中のNAS機上で設定しました。

そして次のコマンドを実行してマウントできる事を確認します。

 # mount -a /media/DATA/data1
 # mount -a /media/DATA/data2

マウントできたら NAS機を再起動して data1、data2が自動マウントされている事を確認します。

最後に Sambaサーバーを構築してサブネット内ホスト機の Windows上で NASのホストネームのフォルダーが下の画像のように表示されそのフォルダー内の data1とdata2にアクセス出来れば設定完了です。

 

なお、Sambaサーバーの構築で共有ディレクトリを設定する場合マウントした /data1/、/data2/を指定してもよいのですがその場合 /data1/、/data2/の中にそれぞれ自動的に作成される /lost+found/ディレクトリがサブネット内の Windows上から見える事になります。

なので /data1/、/data2/ディレクトリ下にそれぞれもう1つディレクトリを作成してこれを共有ディレクトリに指定します。

Windows 側の設定

Windows 側で設定することは特にありませんが NAS機への SSH接続とコントロールのため端末エミュレータ Tera Term(テラターム)をインストールしておきます。

直近では ホスト機のWindows上から停電時自動シャットダウンアプリをインストールする際に使用します。

もしも FTPサーバーを構築しているならばファイルの送受信用に FTPクライアントの WinSCP をインストールしておくと何かと便利です。SSH接続が出来るのでお勧めです。

参考までに Windows側で設定することは特にないと書きましたが1つだけ ー Tera Termで NAS機へ接続する際にIPアドレスを入力するのが面倒な時は hostsファイルにNAS機のIPアドレスとホストネームを記述して名前解決しておくとよいです。

NAS機のホストネームで接続できるようになります。hostsファイルは下記の場所にあるのでテキストエディタやメモ帳で開いて最終行に記述しておきます。

C:\Windows\System32\drivers\etc\hosts 
 
 
  192.168.0.10      net2.localdomain 
(NAS機のIPアドレス)   (NAS機のホストネーム) 
 

VLC メディアプレイヤーのインストール

今回自作したパソコンは NAS用途だけでなくデスクトップ機にも転用出来るようにしておきたいのでマルチメディアプレイヤーの VLC をインストールしました。

 

OS デフォルトのメディアプレイヤーは別途コーデックをインストールしないと使えないのでコーデックパックを探す手間を考えると VLCをインストールしたほうが手っ取早いと思ったからです。

ところがそのインストールには少々手こずりました。何しろ初めてCentOS Server にインストールしたものですから Ubuntuのようにはいきません。

インストールの方法をインターネットで検索して2つの方法を試したのですが上手く行かず3つ目に行った下記の方法でインストールする事が出来ました。

Nux !(Nux on CentOS 7) というフォーラムに掲載されていた CentOS 7 用のリポジトリを 6用のリポジトリに修正(赤字部分)して VLCをインストールしました。

端末から

 # yum install http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-1.el6.nux.noarch.rpm 
 # yum install vlc

を実行してインストール完了です。

OSのユーザーインターフェイスをテキストモードへ

ここまでの設定やインストールは NAS機のデスクトップ(GUI)上で行ってきましたがここから先は NAS機を UPSと接続しネットワーク上に置くのでモニターやキ-ボード等は取外すことになります。

その前にデスクトップは起動する必要がないのでテキストモードでの起動(ランレベル:3)へ変更しておきます。設定ファイル /etc/inittabを編集します。

端末から

 # nano /etc/inittab

を実行して設定ファイルの最終行のランレベル 5をコメントアウトして

#id:5:initdefault:
id:3:initdefault:

の様にランレベル 3を記述し(下画像)保存して NAS機を再起動します。

 

モニター画面にログインプロンプトが表示され入力待ちの状態になっていれば OSはテキストモードで起動しています。

ログインプロンプトが確認できたらユーザーIDとパスワードを入力しログインしてrootに昇格または rootユーザーでログイン後、次のいずれかのコマンドでシャットダウンします。

 # shutdown -h now	(今すぐシャットダウン)
 # shutdown -h +1	(今から1分後にシャットダウン)

シャットダウンしたら NAS機を所定の場所に設置します。これ以降の設定やアプリのインストールはサブネット内のホスト機から行います。

参考までに|テキストモードでログイン後日本語のデスクトップ(X-Window System)を起動したい場合は次のコマンドを実行します。

 $ LANG=ja_JP.UTF-8 startx

UPSとの連携

停電時自動シャットダウンアプリのインストール

今回寿命を迎えた市販の NASと一緒に購入した UPSを引き続き使いたいので停電時に NASを自動的にシャットダウンしてくれるアプリケーションソフトをインストールする事にしました。

そのアプリは「Simple Shutdown Software(Linux版)」と言う自動シャットダウンアプリで UPSのメーカー OMRON のサイトで無償配布されています。

  • UPS型式:BX35F
  • Simple Shutdown Software Ver 2.30(Linux/64ビット版)
  • Ver 2.30/2.20 取扱説明書 Linux版

今回下記の手順でインストールしました。この手順はホスト機で WinSCPなどの FTPクライアントを使わないつまり FTPサーバー未構築の場合の方法です。

  1. 新・NAS機に CentOS 6.7をインストールしサーバーの構築を完了する
  2. 新・NAS機に UPSメーカーのサイトからスタンドアロン用の Simple Shutdown Softwareをダウンロードし解凍しておく
  3. この時アプリの取扱説明書も必ずダウンロードしてサブネット内のホスト機にコピーしておく
  4. 新・NAS機をシャットダウンしてUPSに接続する(UPS付属のUSBケーブル)
  5. UPS電源ON → 新・NAS機にLANケーブルを接続し電源ON
  6. 新・NAS機にホスト機からリモート接続
  7. 一般ユーザーでログイン後 rootに昇格または rootユーザーでログイン
  8. ホスト機から前出の取扱説明書に従ってインストール
  9. インストールが完了するとデーモン登録されるので再起動しなくてよい
  1. 2015年9月末 新・NAS機稼働開始!

 
Simple Shutdown Software の設定

下の画像はSimple Shutdown Software 設定のスクリーンショットです。net2.localdomain が新・NAS機のホストネームです。

 

設定の変更は Agent Managerを下記コマンドで起動します。

 # /usr/lib/ssd/master/AgentManager

するとメニューが表示されるので一旦自動シャットダウンアプリを停止してから新しい設定を入力していきます。詳しい事はアプリと一緒にダウンロードした取扱説明書に記載されています。

以上でUPS連携停電時自動シャットダウンアプリのインストール完了です。

HDDの使用量を確認する

2015年9月末の稼働開始からひと夏の厳しい環境を乗り越え2016年12月現在まで何の問題もなく運用しています。

そこで今回はこの期間のHDD使用量を確認しておきます。まずはサブネット内ホスト機のTeraTermからNAS機にリモート接続しユーザー権限でログインしてrootに昇格しておきます。

確認方法

rootに昇格したら次のコマンドを実行します

 # df -h

すると下記のようにHDDのパーティションごとにその使用量が表示されます

Filesystem   Size  Used  Avail  Use%  Mounted on
/dev/sda2     30G  4.0G   24G    15%  /
tmpfs        1.9G     0  1.9G     0%  /dev/shm
/dev/sda1    100M  256K  100M     1%  /boot/efi
/dev/sda4    887G  466G  376G    56%  /media/DATA/data1-a
/dev/sdb1    917G  493G  378G    57%  /media/DATA/data2-f
 

下の画像はTeraTermから上記コマンドを実行した時のスクリーンショットです。

 

実は今回HDDの使用量を確認する事になったきっかけがホスト機のバックアップイメージを転送している途中でバックアップアプリが停止したことでした。

原因は /dev/sda4(/media/DATA/data1-a)の容量不足で、思えば稼働開始から現在に至るまで1度も容量確認などしていませんでした。今回 /data1-aディレクトリ内を整理して上記の結果となっているわけです。

容量オーバーしたその時NAS機は

ところで容量オーバーしたその時のNAS機の挙動について、サブネット内の別のホスト機からも /data1-aにアクセス出来ますしファイルの読み込みも問題ありませんでした。

図らずもNAS機が容量オーバーした時の動作確認ができた結果となりました。

▲ 目次へ

Top of Pageの画像
sidemenuの画像