CloudShell 2の初期設定

2018-07-29

CloudShell 2を組み立て、取りあえず動くようにはなったので、初期設定をします。初期設定の内容はWikiに記載されている。

公式のWikiでは Ubuntu 16.04.2 minimal で動作確認をしているけど、現状の最新はUbuntu 18.04 minimal だったので、18.04の方で進めました。特に何も違いはなかったと思う。

RAID構成の設定

ログインユーザは[root]で、パスワードは[odroid]です

OS(Ubuntu)を更新

OS(Ubuntu)を最新のものに更新します。

$ apt update
$ apt upgrade
$ apt dist-upgrade
$ reboot

それぞれ

update: パッケージリストの更新(ラインナップの方が正しいか?)
upgrade: インストールされてるパッケージの更新
dist-upgrade: インストールされてるカーネルの更新

なので、OSをインストールしたばかりだったり、新しいアプリをインストールする直前に大体実施しておきます。

HDD/SSDをフォーマット

ここからはモードによって手順が分かれます。モードの種類はPM、RAID 0、RAID 1、SPAN の4種類。RAIDがどういうものか詳細は色々なサイトで解説しているので、僕はざっくりと以下の理解です。

PM: 通常どおり2つのHDDが設置されている状態として扱う
RAID 0: 2つのHDDを一つのディスクとして扱い、読み書きを並列処理にする。
読み書きが高速になる代わりに、ディスクが一つでも壊れたら全て読み出せなくなる。
RAID 1: 1つの情報を2つのHDDに書き込む。冗長化。
読み書きは遅くなり、容量も半分になるが、ディスクが一つ壊れても復旧できる。
SPAN: 2つのHDDを一つのディスクとして扱うが、読み書きは直列。
読み書きは通常、容量も通常、ディスクが壊れても壊れた分が消失するだけ。

手順は[PM] か [RAID 0/ RAID 1/SPAN] で分かれている。僕はRAID 0で構成したので以下からはRAID構成の手順。PMにする場合はWiki参照。

ハードディスクをフォーマットします。

$ dd if=/dev/zero of=/dev/sda bs=512 count=1
$ mkfs.ext4 /dev/sda

ddコマンドはファイルをブロック単位で読み出し、指定のフォーマットで書き込むコマンド。[/dev/zero]指定はファイルの中身を0埋めで消去する。nullとはちょっと違ったと思う。

mkfsコマンドでフォーマット。形式は[ext4]を指定。HDD/SSDは2枚挿すけどRAIDなのでフォーマットは片方だけで良い。

マウントポイントの作成

マウントポイントを作成し、システムの起動時に自動マウントさせるために、[/etc/fstab]ファイルを編集します。

$ mkdir -p /media/hdd

[/etc/fstab]をvimで開いて最終行に追記する。
※vimはインストールされていないので自分でインストールした。viは入っている。vimを使いたい場合は[apt install vim]でインストールされる。

$ vim /etc/fstab
~
/dev/sda /media/hdd ext4 defaults 0 1

ディスク管理用のユーザを作成

この後でsambaをインストールするんだけど、sambaにアクセスする “cloudshell” というログイン不可のユーザアカウントを作成します。

$ echo "/bin/false" >> /etc/shells
$ useradd cloudshell -d /media/hdd1 -s /bin/false
passwd (cloudshellのパスワードを入力)
$ chown cloudshell.cloudshell -R /media/hdd
$ chmod 755 -R /media/hdd/

[/bin/false]はログイン不可にする処理。これをログイン時に実行可能なシェルスクリプトに追記して、cloudshellユーザは[/bin/false]を実行するように指定するので、ログイン不可のユーザになる。[chown]でHDD/SSDの所有者をcloudshellに変更し、[chmod]で権限も変更しておく。

sambaのインストールと設定

sambaをインストールします。

$ apt install -y samba

設定ファイルを変更します。

$ vim /etc/samba/smb.conf

[global]セクションを探して以下を追記。

write cache size = 524288
getwd cache = yes
use sendfile = yes
min receivefile size = 16384
socket options = TCP_NODELAY IPTOS_LOWDELAY

そのまま最終行に移動して以下を追記。

[Shared]
comment = CloudShell-2 File Server
path = /media/hdd
guest ok = yes
browseable = yes
create mask = 0644
directory mask = 0755
read only = no
writable = yes
force user = cloudshell

そしてreboot。

reboot

これでRAID構成になっている…はず。ちゃんとハード側のスイッチを切り替えておけば。

この写真の右上部分。設定を変えた場合は左下のスイッチを起動するまで押したままにすれば反映される。

LCDとFANの設定

ここまで設定してもLCDとFANは動かないので、個別で設定します。

まずはリポジトリを追加して更新

$ add-apt-repository ppa:kyle1117/ppa
$ apt-get update

FANの設定

FANはインストールすれば終わり

$ apt-get install odroid-cloudshell cloudshell2-fan

LCDの設定

LCDもインストールすれば終わり

$ apt-get install cloudshell-lcd

LCDの表示はデフォルトだとCPU使用率とか温度とかだけど、RAIDステータスを追加するスクリプトもあるので、以下を参照してインストールすればRAIDステータスの情報も画面に表示できる。

一通り設定が終わったらrebootすればLCDとFANが動き出す。

これで基本的な設定は終了

ちゃんと表示されるようになったよー(。・ω・)ノ゙