HP Microserver N54L セットアップ日記 その3 - CentOS 8 のインストールと設定

久しぶりに家の NAS をリプレースしていますシリーズその1, 2の続きです。



その2、で無事に BIOS のアレコレをした結果、ディスクが認識できたので、OS をインストールしていきます。

家のサーバは、基本的に CentOS を使うようにしているのですが、新しいバージョンをということで、CentOS 8 を入れてみることに。

CentOS 8 のインストール

まずは ISO イメージをダウンロードします。

今回は、上記のミラーサイトあたりから、今時点の最新版である "CentOS-8.1.1911-x86_64-boot.iso" をダウンロードして使用しました。

HP Microserver は光学ドライブがないので、USBメモリ等に、USB ブートできるイメージとして ISO を焼き付けます。


インストール開始。言語・キーボードを選択します。


いくつかエラーが出ています・・・。1つずつ必要な部分を修正&設定していきます。


今回、NICを増設しているので、LANケーブルを接続したアダプタを利用すべく、選択します。


地域の設定を行います。TOKYO.


インストール先のデバイスを指定します。
今回は、USB メモリを OS のブートディスクにするので、そちらにルートパーティションの設定を行いました。


あとは、"ソフトウェアの選択" で最低限のインストールを指定。
他、Kdump を無効としたくらいでしょうか。(家庭利用なので...)

こんな感じで、設定を行った後、インストールを開始し、完了するのを待ちます。

OS インストール完了後

USBメモリを抜いて、OSが起動してくることを確認し、さらにネットワークに接続されている(インターネット接続可能である)ことを確認します。

ここから、このサーバを NAS にするためのセットアップ+αをしていきたいと思います。

まずはアップデート

パッケージ管理システムが yum => dnf になっているのですね。
詳細はこちらが参考になりました。


# dnf update
メタデータの期限切れの最終確認: 0:00:27 時間前の 2020年02月24日 23時51分35秒 に実施しました。
依存関係が解決しました。
行うべきことはありません。
完了しました!

すでに最新化されておりました・・・ネットワークインストールしたから当たり前かw

SELinux の設定

家庭内 NAS なので無効で・・・。
"/etc/sysconfig/selinux" ファイルの以下行をこんな感じに修正。

SELINUX=disabled

ファイヤーウォールサービスの停止

家庭内 NAS なので、こちらも無効に・・・。

# systemctl stop firewalld.service
# systemctl disable firewalld.service


この辺で、一度 OS を再起動します。

# shutdown -r now

RAID ボリュームの作成

NAS の本丸です。今回は、ハードディスク5本を RAID6 で組みます。

まず parted コマンドで /dev/sd[b,c,d,e,f] まで以下の要領でパーティションを切ります。

# parted /dev/sdb
GNU Parted 3.2
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted)
>||

コマンドでデバイス名を指定。

>||
(parted) p
エラー: /dev/sdb: ディスクラベルが認識できません。
モデル: ATA Hitachi HUA72303 (scsi)
ディスク /dev/sdb: 3001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: unknown
ディスクフラグ:

まず print で中身を確認。

(parted) mkpart
エラー: /dev/sdb: ディスクラベルが認識できません。

いきなり mkpart できなかったので、、、

(parted) mklabel gpt
(parted) p
モデル: ATA Hitachi HUA72303 (scsi)
ディスク /dev/sdb: 3001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始  終了  サイズ  ファイルシステム  名前  フラグ

mklabel でラベルを付与します。GPT を指定。
で、print で確認。

(parted) mkpart
パーティションの名前?  []?
ファイルシステムの種類?  [ext2]? xfs
開始? 0%
終了? 100%
(parted) p
モデル: ATA Hitachi HUA72303 (scsi)
ディスク /dev/sdb: 3001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前  フラグ
 1    1049kB  3001GB  3001GB  xfs

mkpart できました。1パーティションに容量をフルで割り当て。

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

終わったら、 quit です。これをディスク5つ分実行します。

# fdisk -l

終わったら fdisk コマンドのリストでも、全体でパーティションが構成できているか確認してみるのも良いですね。

# mdadm --create /dev/md0 --level=6 --raid-devices=5 /dev/sd[b,c,d,e,f]1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

次は mdadm で RAID ボリュームを作ります。
↑こんな感じで、今回は基本デフォルトの設定で作りました。

create する際のオプション等は、man を参照するか、以下リンク先に色々書いてありました。


# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sdf1[4] sde1[3] sdd1[2] sdc1[1] sdb1[0]
      8790398976 blocks super 1.2 level 6, 512k chunk, algorithm 2 [5/5] [UUUUU]
      [>....................]  resync =  0.1% (3901136/2930132992) finish=403.3min speed=120902K/sec
      bitmap: 22/22 pages [88KB], 65536KB chunk

unused devices: <none>

終わったら、MD デバイスのステータスを確認してみます。
きちんと Level 6 で sync が走っていますね。

# mdadm --detail --scan > /etc/mdadm.conf

MD デバイスの設定を、ファイルに出力しておきます。(お約束)

ファイルシステムの作成とマウント

# mkfs.xfs -f -b size=4096 -i size=512 -l size=64m /dev/md0
meta-data=/dev/md0               isize=512    agcount=32, agsize=68675072 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=2197599744, imaxpct=5
         =                       sunit=128    swidth=384 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

次、XFS のファイルシステムを↑のような感じで、作成します。
(今回は XFS を選択しましたが、ファイルシステムはお好みで。)

# blkid /dev/md0
/dev/md0: UUID="eb3af70b-e1bf-4a94-9749-3e474afbd02c" TYPE="xfs"

デバイスの UUID を調べて、、、

UUID=eb3af70b-e1bf-4a94-9749-3e474afbd02c /data                   xfs     noatime,logbufs=8  1 2

"/etc/fstab" に上記の行を記載します。
これで、OS のブート時に自動でマウントされるようになります。

# mount -a
# df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         3.9G     0  3.9G    0% /dev
tmpfs            3.9G     0  3.9G    0% /dev/shm
tmpfs            3.9G  8.6M  3.9G    1% /run
tmpfs            3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/sda1         15G  1.8G   13G   13% /
tmpfs            785M     0  785M    0% /run/user/0
/dev/md0         8.2T   59G  8.2T    1% /data

"mount -a" で、fstab 記載した分のマウントを手動で行った後、df コマンドで作成したパーティションが (今回の例だと) "/data" ディレクトリとしてマウントされたことが確認できました。

ネットワーク関連の設定

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

IPv6 を無効にするべく、"/etc/sysctl.conf" に上記を追記します。
(推奨としては "/etc/sysctl.d" 配下にファイルを作成して、そこに追記するのがよいかとは思います。)

# sysctl -p
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

上記のパラメータを反映させます。

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

上記のような感じで、"/etc/hosts" の IPv6 のループバックアドレスをコメントアウトします。

# nmcli --help
使い方: nmcli [OPTIONS] OBJECT { COMMAND | help }

OPTIONS
  -a, --ask                                ask for missing parameters
  -c, --colors auto|yes|no                 whether to use colors in output
  -e, --escape yes|no                      escape columns separators in values
  -f, --fields <field,...>|all|common      specify fields to output
  -g, --get-values <field,...>|all|common  shortcut for -m tabular -t -f
  -h, --help                               print this help
  -m, --mode tabular|multiline             output mode
  -o, --overview                           overview mode
  -p, --pretty                             pretty output
  -s, --show-secrets                       allow displaying passwords
  -t, --terse                              terse output
  -v, --version                            show program version
  -w, --wait <seconds>                     set timeout waiting for finishing operations

OBJECT
  g[eneral]       NetworkManager's general status and operations
  n[etworking]    overall networking control
  r[adio]         NetworkManager radio switches
  c[onnection]    NetworkManager's connections
  d[evice]        devices managed by NetworkManager
  a[gent]         NetworkManager secret agent or polkit agent
  m[onitor]       monitor NetworkManager changes

CentOS 8 は NetworkManager が採用されているので、CUIツールである nmcli コマンドを利用します。
まず help サブコマンドで使い方を確認...

# nmcli d
DEVICE    TYPE      STATE     CONNECTION
enp3s0    ethernet  接続済み  enp3s0
enp2s0f0  ethernet  切断済み  --
enp2s0f1  ethernet  切断済み  --
lo        loopback  管理無し  --

現在のデバイスのステータスを確認します。

# nmcli c add type bond ifname bond0 con-name bond0 bond.options "mode=balance-alb,miimon=100"
接続 'bond0' (ec83d793-0ac4-43d1-8e80-0f52dba8e33a) が正常に追加されました。

追加したデュアルポートの Intel NIC で bonding (冗長構成) を組みます。
上記コマンドで "bond0" というネットワークインターフェースを作成しました。
mode は、balance-alb (mode=6) です。

# nmcli c mod bond0 autoconnect yes

OS 起動時等で、自動的にインターフェースが有効となるように設定。

# nmcli c delete enp2s0f0
接続 'enp2s0f0' (4544935e-6284-4f25-babe-1a904d8c2f64) が正常に削除されました。

# nmcli c add type ethernet ifname enp2s0f0 con-name enp2s0f0 master bond0
接続 'enp2s0f0' (7176a79c-309d-4ac5-9467-423dd42acb82) が正常に追加されました。

# nmcli c delete enp2s0f1
接続 'enp2s0f1' (d68f21d1-72d5-4a6f-84c2-bce593caf37e) が正常に削除されました。

# nmcli c add type ethernet ifname enp2s0f1 con-name enp2s0f1 master bond0
接続 'enp2s0f1' (65da659b-434a-4f51-b26f-c86683babeca) が正常に追加されました。

"enp2s0f0" と "enp2s0f1" の2つのデバイスを、"bond0" デバイスに紐付けます。

# nmcli d
DEVICE    TYPE      STATE     CONNECTION
enp3s0    ethernet  接続済み  enp3s0
bond0     bond      接続済み  bond0
enp2s0f0  ethernet  接続済み  enp2s0f0
enp2s0f1  ethernet  接続済み  enp2s0f1
lo        loopback  管理無し  --

各デバイスのステータスを再確認。

# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: adaptive load balancing
Primary Slave: None
Currently Active Slave: enp2s0f0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: enp2s0f0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 90:e2:xx:xx:xx:xx
Slave queue ID: 0

Slave Interface: enp2s0f1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 90:e2:xx:xx:xx:xx
Slave queue ID: 0

bonding のステータスも確認し、問題なさそうです。

# nmcli c mod bond0 ipv4.addresses 192.168.0.xx/24
# nmcli c mod bond0 ipv4.gateway 192.168.0.1
# nmcli c mod bond0 ipv4.dns 192.168.0.1
# nmcli c mod bond0 ipv4.method manual
# nmcli c mod bond0 ipv6.method ignore

IPアドレス/マスク、ゲートウェイのアドレス、DNSサーバの指定等を行います。

# nmcli c down bond0 && nmcli c up bond0
接続 'bond0' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/2)
接続が正常にアクティベートされました (master waiting for slaves) (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/7)

ここまで来たら、一度 bond0 を無効/有効にします。

# nmcli con mod enp3s0 autoconnect no
# nmcli con mod enp3s0 ipv4.method manual
# nmcli c down enp3s0 && nmcli c down bond0 && nmcli c up bond0

上記は、HP Microserver のオンボード NIC なのですが、OS 起動後は利用しないので、無効とします。この辺はお好みで。
(厳密には、このポートは Wake On Lan で利用するので、LANケーブルは挿したままですが。)

# nmcli d
DEVICE    TYPE      STATE     CONNECTION
bond0     bond      接続済み  bond0
enp2s0f0  ethernet  接続済み  enp2s0f0
enp2s0f1  ethernet  接続済み  enp2s0f1
enp3s0    ethernet  切断済み  --
lo        loopback  管理無し  --

各デバイスのステータスを再確認し、想定通りです。

Sambaのインストールと設定

# dnf install samba
メタデータの期限切れの最終確認: 0:48:44 時間前の 2020年02月26日 00時48分59秒 に実施しました。
依存関係が解決しました。
====================================================================================================
 パッケージ                   アーキテクチャー バージョン                    リポジトリー     サイズ
====================================================================================================
インストール:
 samba                        x86_64           4.10.4-101.el8_1              BaseOS           739 k
依存関係のインストール:
 samba-common-tools           x86_64           4.10.4-101.el8_1              BaseOS           469 k
 samba-libs                   x86_64           4.10.4-101.el8_1              BaseOS           185 k

トランザクションの概要
====================================================================================================
インストール  3 パッケージ

ダウンロードサイズの合計: 1.4 M
インストール済みのサイズ: 4.1 M
これでよろしいですか? [y/N]: y

まず Samba を DNF でインストールします。

# cp /etc/samba/smb.conf{,.bak}

念のため、Samba の初期設定ファイルをコピーしてバックアップ。
Samba の設定ファイルを良い感じに設定します。(この辺は好みですし、インターネット上にたくさん情報があるので割愛します。)

# systemctl start smb nmb
# systemctl enable smb nmb
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/nmb.service → /usr/lib/systemd/system/nmb.service.

Samba 関連のサービスを起動&自動起動の有効化。

# smbpasswd -a nami

Samba 用のユーザ作成&パスワード設定を実施。


とまぁ、こんなところでしょうか。(ちょっと途中で力尽きてきた部分もありますが、さらに細かい部分については、また別エントリで記載します。)

他、何か書き漏れている気がしなくもないですが、大筋の流れはこういう感じなので、自分のためにも備忘録的にココに残しておきます。

今日はこの辺まで。
それでは! =͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́

あわせて読みたい

その4を書きました。


CentOS8 実践ガイド [システム管理編] (impress top gear)

CentOS8 実践ガイド [システム管理編] (impress top gear)

  • 作者:古賀政純
  • 発売日: 2020/03/13
  • メディア: 単行本(ソフトカバー)