2016年2月9日火曜日

IPアドレスの固定化

今回のマシン、サーバとして用いたいので、IPアドレスが固定化されていると助かる。
ウチの環境では、インターネット接続ルータがdhcpサーバも兼ねているので、そちらの機能を使って、macアドレスとIPアドレスをひも付けてしまうというやり方もあるけど、今回はサーバ側で明示的にIPアドレスを固定化する。
で、ネットワーク周りの設定だけど、昔だったら /etc/network/intefaces というファイルにIPアドレスやゲートウェイアドレスを記載していったり、 /etc/resolvconf/resolv.conf.d/base にネームサーバのアドレスを書いて、 resolvconf コマンドを実行していたところだけど、最近のトレンドは違うらしい。
最近は NetworkManager というのを使うのが流行りのようだ。
今回も、その流行りに乗って、NetworkManager を用いてみる。
まずはインストール
sudo apt-get update
sudo apt-get install network-manager
これでインストールはされるけど、NetworkManagerサービスは起動していない
systemctl is-active NetworkManager
(inactive と表示されるはず)
ただし、自動起動はされるようになっているようだ。
systemctl is-enabled NetworkManager
(enabled と表示される)
この場合、単にOSを再起動するか、手でNetworkManagerを起動してやればいい。
sudo systemctl start NetworkManager
systemctl is-active NetworkManager
(active と表示されるはず)
 
そしたら、NetworkManagerでIPアドレスを付けてやればいい…のだが、実はこのままでは対応出来ない。
/etc/network/interfaces に記載されているI/Fは、NetworkManager の管理下には入らないらしい。
なので、 /etc/network/interfaces から、有線I/Fをコメントアウトしてやろう。
vi /etc/network/interfaces
-----
# The primary network interface
auto enp0s25
iface enp0s25 inet dhcp
↓
# The primary network interface
#auto enp0s25
#iface enp0s25 inet dhcp
-----
これで上書き保存すれば、 NetworkManager で管理できるはずだ。
NetworkManager は、CLI(コマンドラインインターフェース)、TUI(Text User Interface)、GUI(Graphical User Interface) の3種類が用意されているらしいが、Xの環境を整えていない今は、GUI は利用できない。そのため、CLIかTUIのいずれかになるけど、コマンドオプションまで正確に入れるのは慣れていないとタイヘンなので、一旦ここは TUI を使用することにしよう。
sudo nmtui
自分自身のパスワードを聞かれた後、テキスト画面に以下の3つ(Quitを含めると4つ)の選択肢が選べるようになる。
Edit a connection
Activate a connection
Set system hostname
Quit
ネットワークの設定をするのは、一つ目のEdit a...でいい。
これを選択した状態でEnterキーを叩くと、今度はI/Fを選択するメニューが出てくる。
Ethernet
  enp0s25
ブリッジ
  virbr0
Ethernetの下に表示されているのが、物理NICのI/F名。ブリッジと表示されているのは、このマシンに仮想化環境が導入されていて、それによって自動的に作られたI/Fだ。こちらは仮想化関係の設定で意味を持つものなので、無視して良い。人によっては、Ethernetの下に複数のI/F名が出ているかもしれないし、Wireless(つまり無線)のI/F名が出ている人もいるかもしれない。
Ethernetケーブルでつないでいるネットワークに固定IPを付与したいので、Ethernetの下に表示されているI/F名が選択されている状態にして、<Edit . . . >を叩こう。更に詳細の画面が出てくるはずだ。
  • Profile name
    この設定につける名前
  • Device
    対象となるデバイス名と、そのmacアドレスが表示されているはず。
    macアドレスは、コマンドラインから ip address というコマンドを実行したらわかる。
  • ETHERNET
    NICの多重化等で関係していると思うが、今回は無視。
  • IPv4 CONFIGURATION
    これがIP固定化の項目。
    <Automatic>になっていると思うので、これを<Manual>に変更する。そうすると、入力項目が増えるので、以下のように入力する。
    • Addresses
      付けたいアドレス。(例 192.168.1.2。一つのNICに、複数のIPアドレスを付与したい場合は、そのすぐ下の<Add...>を利用する。)
    • Gateway
      Internet接続ルータの内側のアドレス。(例 192.168.1.1)
    • DNS servers
      ルータがDNSを兼ねているのなら、ルータのアドレス。それ意外にローカルでDNSを建てているのならそのアドレス。無いのなら、Internet側にある公開DNSを利用するのも手。(Googleが公開DNSを運用してたはず…)。
      こちらも、複数設定したい場合は、<Add...>を利用する。
    • Search domains
      内部でドメイン(.hoge.co.jpみたいな)を利用している場合は、そのドメインを書いておくと便利かもしれない。でも、まずは無視してよい。
    • Routing
      スタティックルートを必要とする場合の設定だけど、スタティックルートという単語を知っている人なら、特に説明しなくてもいいだろうし、知らないナニソレ美味しいの?な人なら、空欄にしておいて問題はない。
    • Never use this network for default route
      本来なら、主となるNIC(Internet側との接続ポイントであるルータと繋がっているNIC等)の場合にチェックを入れておくべきなのだけど、何故かチェックを入れたら上手く動かなかった。なので今はチェックを外してある。
    • Require IPv4 addressing for this connection
      一応、まだIPv6の環境が整っておらず、IPv4メインで使うので、こちらにはチェックを入れておく。
  • IPv6 CONFIGURATION
    IPv6の環境は整えていないが、無効にする必要も無いだろうから、<Automatic>のままにしている。
  • Automatically connect
  • Available to all users
    いずれもチェックを入れた状態にしておく。詳細は別途調べてくれぃ。

2016年2月8日月曜日

ディスクレイアウトについて

先の記事にも書いたけど、ディスクレイアウトは結構細かくしている。
ざっと以下のような感じだ。

ボリューム ファイルシステム マウントポイント 容量 その他メモ
/dev/sda1 vfat /boot/efi 512M EFI System Partition
/dev/sda2 ext2 /boot 512M  
/dev/vg-root/lv-root ext4 / 8192M  
/dev/vg-root/lv-etc-opt ext4 /etc/opt 32M  
/dev/vg-root/lv-home ext4 /home 1024M  
/dev/vg-root/lv-opt ext4 /opt 32M  
/dev/vg-root/lv-srv ext4 /srv 32M  
/dev/vg-root/lv-tmp ext4 /tmp 1024M  
/dev/vg-root/lv-usr-local ext4 /usr/local 32M  
/dev/vg-root/lv-usr-share ext4 /usr/share 2048M  
/dev/vg-root/lv-var ext4 /var 2048M  
/dev/vg-root/lv-var-backups ext4 /var/backups 32M  
/dev/vg-root/lv-var-cache ext4 /var/cache 2048M  
/dev/vg-root/lv-var-crash ext4 /var/crash 20480M  
/dev/vg-root/lv-var-local ext4 /var/local 32M  
/dev/vg-root/lv-var-log ext4 /var/log 1024M  
/dev/vg-root/lv-var-opt ext4 /var/opt 32M  
/dev/vg-root/lv-var-tmp ext4 /var/tmp 1024M  
/dev/vg-root/lv-swap-1 swap (swap) 32768M  
こんな風に細かく分けるのは、昔はそれなりに意味があったが、今じゃ単なる趣味のレベルだ。
強いて言うのなら、
  • 特定ディレクトリの使用量が突然膨らんでも、他のディレクトリには影響しない
  • 何かのプログラムが、使われてないはずのディレクトリ(/srv等、32Mで指定した領域)を使っていても、すぐに気付ける
  • バックアップ・リストアの単位を細かくできる
  • 使用目的ごとに、ファイルシステムタイプを選ぶことが出来る
ぐらいじゃないだろうか。
とは言っても、ほとんどの領域をext4で作っているので、ファイルシステムタイプを選ぶメリットは活かせていないし、バックアップ・リストアも全領域一括で行うことを考えているので、そのメリットもない。
あくまで趣味の世界だ。
昔だったら、 / と /usr は分けていた。というか、今でも分けたいと思っている。
先の記事にも書いたけど、最近のトレンドは / と /usr を分けない方向にあるみたいなので(RedHat は分けないことを推奨している模様)、それに倣ったというのが実情。
ただし、 /usr はただでさえでかいディレクトリなので、その中でも分割可能そうなディレクトリはボリューム分割した。
/boot がLVM領域じゃないのは、ubuntuを何も考えずにお任せインストールすると、 /boot がLVM領域じゃなく、単なるパーテイションになるから、それに従った。
ホントは、LVM領域にしたかったんだけどね。
ファイルシステムに ext4 を選んで、 xfs を選ばなかった理由は、この後記載するバックアップ・リストアに関連している。
リストア時は、OSメディア(ubuntu serverのCD-Rメディア)で boot して、復旧用に shell を立ち上げ、そこからリストアを行うことを想定している。
んが、ubuntu server のメディアで boot すると、xfsファイルシステムを作るための mkfs.xfs コマンドが無いんだ。
だから ext4 にした。
あと、 /var/crash なんだけど、デフォルトでは kdump がインストールされないみたいなので、わざわざ確保してもあまり意味が無い。
更に、 crash-dump が吐き出されても、解析できるだけの力があるわけじゃないので、意味なしなんだ。まぁ、なんとなく、ね。
ディスクレイアウトとファイルシステムに関してはこんな感じ。
 
P.S.
今回のマシンは uEFI が使われている。 /boot/efi は uEFI ブートを行う場合に必要な領域で、レガシーBIOSからブートする場合は不要。ただ、もう uEFI が当たり前の時代になっているっぽいので、それに従って uEFI モードにしてある。
 
2016/03/23追記
どうやら、メディアブートしても、ちゃんと mkfs.xfs は使えるようだ。
コマンドとしては存在しないけど、メディアブートした時に使うコマンド集合体であるbusyboxには、mkfs.xfs が組み込まれているようだ。
なので、「メディアブート時に mkfs.xfs が使えないから、OSのファイルシステムとして xfs は使わない」は間違いだった。
実は、xfsは別の理由でも使えなかった。自分がxfsの特性を分かっていないので、トンデモない勘違いをしているかもしれないけど…。
LVMで作られた領域(lvol)をxfsでフォーマットしてマウントしていた状態で、そのlvolのLVMスナップショットを作成、そのスナップショットをマウントしようとすると、xfs内部のuuidが、既にマウントされているものと同じ、という理由でマウント出来なかった。
この辺り、まだまだ調べておく必要が有る。
ということで、xfsのクセが理解出来ていないので、ext4を用いる方針は変えず。(いつかxfs使いたい。)

2016年2月7日日曜日

ubuntu導入

2015年の年末にNASキット(ASUSTor AS1004T)、2016年の年始にIntel NUC(NUC5i7RYH)を購入。
(内蔵ストレージはSSD120GB)
ubuntu Serverの15.10を導入して、ようやっと落ち着いた。
これを使って、色々実験していく予定。

取り急ぎ、導入構成を書いておく。
・HDDレイアウト
 /dev/sda1 : 512MB : vfat : /boot/efi : EFI System Partition
 /dev/sda2 : 512MB : ext2 : /boot
 /dev/sda3 : 残り全て : Linux LVM
・LVMレイアウト
 VG Name : vg-root
 lv-root : 8192M : ext4 : /
 lv-etc-opt : 32M : ext4 : /etc/opt
 lv-home : 1024M : ext4 : /home
 lv-opt : 32M : ext4 : /opt
 lv-srv : 32M : ext4 : /srv
 lv-tmp : 1024M : ext4 : /tmp
 lv-usr-local : 32M : ext4 : /usr/local
 lv-usr-share : 2048M : ext4 : /usr/share
 lv-var : 2048M : ext4 : /var
 lv-var-backups : 32M : ext4 : /var/backups
 lv-var-cache : 2048M : ext4 : /var/cache
 lv-var-crash : 2048M : ext4 : /var/crash
 lv-var-local : 32M : ext4 : /var/local
 lv-var-log : 1024M : ext4 : /var/log
 lv-var-opt : 32M : ext4 : /var/opt
 lv-var-tmp : 1024M : ext4 : /var/tmp
 lv-swap-1 : 32768M : swap
・導入時に指定した機能
 ssh server
 仮想マシン
・ホスト名
 aquarius

ディスクレイアウトは、ホントは / と /usr を分けたかったんだけど、最近の流れで / と /usr は分けない方向になりつつあるようなので、分けないことに。ただ、/usr はすごく大きくなるので、/usr の中でも一部は別領域とした。

ホスト名は、自分が水瓶座だから。

ssh serverは普通使うでしょ。
このマシンで KVM を動かして、色々実験する予定なので、はじめから仮想マシン環境はインストールしておいた。

導入後は、
sudo apt-get update
sudo apt-get upgrade
でアップグレード。

NAS 上の CIFS をマウントしたかったので、
sudo apt-get install cifs-utils
で cifs 関連を導入。

Network の設定は、最近のトレンドは NetworkManager を使うようなので、
sudo apt-get install network-manager
で導入。
NetworkManager の設定は別途記載。

/etc/fstab の /boot/efi の領域(/dev/sda1)が、UUIDでマウントする設定になっている(デフォルト)ので、後日記載予定のバックアップリストアの関係で、UUIDマウントではなく、LABELマウントに変更した。
やり方は以下のように…
sudo su -
(メンドクサイ時は、これで root にスイッチしてます)
fatlabel /dev/sda1
(現在設定済みの LABEL が表示される。確か NO NAME だったような…)
fatlabel /dev/sda1 /BOOT/EFI
(これで /BOOT/EFI に設定される)

後は、vi /etc/fstab で fstab の当該行をコメントにしてしまってから、
LABEL=/BOOT/EFI  /boot/efi       vfat    umask=0077      0       1
を記載。
うまく動作するかを確認するために、
umount /boot/efi
mount -a
df /boot/efi
でマウントされるのを確認した。

とりあえず以上。

ようやく

やっと準備が整った。
これから少しずつブログ書いていきます。