かんちゃんの備忘録

プログラミングや言語処理、ガジェットなど個人の備忘録です。(メモ書き+α)

研究室の計算機管理者のススメ(2)OS

土台をつくろう!

今回は計算機環境の土台作りということで、以下の三点についてお話します。

これにより、ユーザー情報およびファイルを共有することができます。

おっと、導入を読んでいないかたは、↓からどうぞ kanji.hatenablog.jp

OSの選定とインストール

CentOSUbuntu

OSに何を用いるか選ぶのは一つの課題となります。

OSを選ぶ上での基準で大事なことは、トラブル対応しやすいOSに尽きると思います。 言い換えると、Webで情報の多いOSとなります。

様々なOSがありますが、私は以下の2つのOSをオススメします。

  • CentOS
    • RedHat(商用Linux)に基づいたOSで、安定した動作がウリ
    • 安定した動作の反面、インストールされているソフトウェアが古いことがある
  • Ubuntu
    • Debian系のOSで、最新のパッケージを取り入れているのがウリ
    • 管理者権限の概念が異なっており、Windowsから移りやすい優しいOS

大きな差として、システム管理に関するコマンドやディレクトリが若干違います。 どちらのOSでも良いと思いますが、どちらかを極めることをオススメします。 また、研究室内では利便性向上のためにOSは揃えることを推奨します*1

私の場合は、計算機にはCentOS 7を利用しています。 今後の説明はCentOSを基準に行います。

強い味方Web

さて、インストールに入る前に、私がよく利用するサイトを紹介します。 Server worldという、さまざまなOSでソフトウェアのインストール手順を書いているものがあります。

計算機管理に必要なインストール作業の半分以上は書かれています。 このページでは、実際のインストール作業は少々省略して書き、方針や概略・目的をお伝えするため、詳細の手順はServer worldなどをご覧ください。

インストールの準備

最近のLinuxのインストールは非常に簡単になりました。 基本的な流れは、ISOイメージをダウンロードした後、USBもしくはDVDに書き込みます。

CentOSココから、ISOを選びます。 初めてのサーバー管理ではGUIが使えることが望ましいので、DVD ISOかEverything ISOをオススメします。 まずは、DVD ISOで良いです。

DVDドライブがある場合は、ISOイメージを焼きましょう。

USBメモリに書き込む場合は、DVD ISOをダウンロードし8GB以上のメモリを用意します。

Windowsの場合は、UNetBootinを用いてこのサイトを参考にISOイメージを書き込みましょう。

LinuxMacの場合は、ddコマンドを利用して直接書き込みます。 USBメモリを指した後に、dmesgコマンドを入力すると、 [ xxxx.xxxxx] sd 8:0:0:0: [sdb] Attached SCSI removable diskのような記述があるかと思います。 このsdbというのが、USBメモリを指しています。

そして、ddコマンドで書き込みます。 ここでifは書き込み対象のファイル、ofは書き込み先を示します。

dd if=/path/to/CentOSのiso of=/dev/sdb bs=512k

数分すると書き込みが完了します。

インストール

  1. パソコンを一度シャットダウンします。
  2. 電源投入後、すぐにUSBまたはDVDを挿入しつつ、BIOSに入ります。
  3. 起動ドライブでUSBメモリを選択します
  4. OSのインストーラが立ち上がります
  5. ガイドにしたがってインストールを進めます

GPUを指している場合は要注意です*2

CentOSでは、インストール時に設定項目がいくつかあります。

  • インストールの種類
    • サーバーGUI
  • インストール
    • 基本的に自動で良いです。
    • もしHDDなどに既にデータが入っている場合は、フォーマットを行います
  • ネットワークとホスト名
    • 学校によりけりです
    • 私の学校では、事前にMACアドレスを申請し、ipアドレスの割り当て(ホスト名の付与)が行われます
    • 割り当てられたホスト名を設定します

あとは、「インストールの開始」ボタンを押すと、インストールが始まります。

管理者パスワードをここで設定します。 絶対に忘れないでください(笑)*3

ディレクトリサーバー

さて、OSのインストールが無事終えたと思いますので、ディレクトリサーバーをインストールしましょう。

ディレクトリサービスとは、ネットワーク越しにコンピュータ同士でユーザカウント情報などを共有するためのシステムのことです。

今回は、NISを用います。

NISとは?

ネットワーク・インフォメーション・サービスの略称です。

アカウント情報やホスト名など複数のコンピュータで今日すべき情報を一元管理するプロトコルのことです(ディレクトリサービス

つまり、NISを用いることで、設定したパソコンは同じユーザーアカウントの情報(ログインや権限)が利用できます。 それぞれのサーバーで独立したユーザ情報を作る必要がないということです。

LDAPが主流になってきていますが、ここではNISを利用します。

NISのインストール

サーバーにはNISサーバー、クライアントにはNISクライアントをインストールします。

サーバー

yum install ypserv rpcbind
  1. NISドメインの指定
  2. NISサーバーにアクセス許可するIPアドレスの指定
  3. NISサーバーのホスト情報の設定
  4. サービスがOS起動時に起動するように登録
  5. サービスの起動
  6. NISデータベースの更新

クライアント

yum install ypbind rpcbind
  1. NISドメインの指定
  2. NISサーバーのホスト情報の設定
  3. サービスがOS起動時に起動するように登録
  4. サービスの起動

となります。

設定ファイルの編集は、ViかEmacsを利用してください。 非常に強力なエディタで、基本的にこれらを利用します。

どちらかを極めましょう。

ファイルサーバー

ファイルサーバーは、ファイルを共有するためのサーバーです。 NFS(ネットワーク・ファイル・システム)を用いて実現します。

これにより、ファイルを集中管理することができます。 逆に、クライアントはストレージをOSの管理にのみ用いるようになります。

ディレクトリの例

工夫を凝らしたディレクトリ構成を考えましょう。 以下は、研究室での例になります。

  • home
    • homeディレクトリを共有します
    • 異なるサーバーに入っても、同じ設定ファイル.bashrcなどが利用できるようになります
  • lab
    • 研究用のデータを保存します
    • ユーザーの名前で/lab以下にディレクトリを作成するといいでしょう
  • tools
    • ツールをインストールします
    • tools/binをPATHに追加することで、ログインユーザーが簡単にツールを利用できるようになります
    • 一カ所にインストールするため、ツールの更新なども容易になります
  • dic
    • 言語処理研究に必須となる言語資源を配置します

インストール

サーバー

  1. NFSデーモンにホストを設定
  2. exports(共有を許可するホストやその権限譲渡について)を設定
yum install nfs-utils
emacs /etc/exports

# ドメインを追加
# マウントさせたいホストを記述
hostname(rw, sync, root_squash, no_all_squash)((root_squachを推奨))

# 設定の反映
exportfs -a

# firewallの設定
firewall-cmd --add-service=nfs --permanent
firewall-cmd --add-service=rpc-bind --permanent
firewall-cmd --reload

# サービスの立ち上げ
systemctl start rpcbind nfs-server
# サービスの登録
systemctl enable rpcbind nfs-server

クライアント

fstabに

  1. NFSデーモンの設定
  2. NFSマウントをシステム起動時に行うように設定
yum install nfs-utils

# サービスの立ち上げ
systemctl start rpcbind
# サービスの登録
systemctl enable rpcbind

/etc/fstabの設定

emacs /etc/fstab
設定を追加

おわりに

たんだんと説明が面倒大変になって参りました。 コマンドが増えてきて、何をやっているか分からなくなってきます。

あきらめずに、何をやるコマンドか?ということを意識して挑戦してください。

さて、次回はツールのインストールでも書こうかと思います。

*1:実行バイナリを共通で利用できるため

*2:nouveauドライバの読み込まないようにブートローダの設定をする必要があります

*3:シングルユーザーモードで再設定ができますが、面倒です・・・