Motiontrack のすべての投稿

日ごろは職場内のネットワークやサーバの管理業務を行っています。自宅でもイントラサーバを構築し、いろいろな実験をしています。 プログラムも少し書きます。(php、java、Cなど)

LS420DでHDDを2台同時に交換する

LS420Dを中古で購入しました。

ついてきたHDDは保管し、手持ちの2TBのHDD2台を使おうと考えました。Webで調べると、LSUpdata.iniの2行を以下のように書き換え、セクションを1つ足せばHDDのパーティションを切りなおしてファームウェアをインストールしてくれるとの記述が多く見つかりました。

書き換え
[Flags]
VersionCheck = 1 → VersionCheck =  0
NoFormatting = 1 → NoFormatting = 0
追加
[specialflags]
debug = 1

“LinkStation 400シリーズファームウェア アップデータ (Windows) Ver.1.88” をダウンロードし、このページを参考にインストールを試みましたが、エラーでアップデートが進みません。

LSUpdater.exeデバッグモードの画面を開くと”完全フォーマット”の項目がグレーアウトしていてチェックが入れられません。
v1.88に添付されているLSUpdater.exeではパーティションの再構築の機能が制限されているようです。

旧バージョンであればファームウェアをインストールできる可能性はありますが、Buffaloのホームページでは最新版しか提供されていません。旧バージョンがどこかにないかと探してみましたが見つかりません。
結局英語版のv1.81を見つけ、それに同梱されているLSUpdate.exeを使ったらフォーマットにチェックを入れることができてファームウェアをインストールすることができした。

 

Debianディスクレスクライアントの構築(クライアント編)

サーバの設定がほぼ終わったら、クライアントのインストールを進めていきます。クライアント側ではDebian live CDを起動し、作業を進めていきます。

  1. Debian live DVDの入手
    DVDのisoイメージはここからダウンロードしました。書き込みソフトを使ってブートDVDを作成します。
  2. 起動と初期設定
    DVDを作成したらlive環境を起動します。user, live でログイン後、”sudo bash”でrootになって作業します。設定をssh経由で他のPCから行いたかったので、ssh-serverとdebootconfigをインストールします。
    もちろんGUI環境でも同様の設定は可能です。

    # apt-get update
    # apt-get install nfs-common
    # apt-get install openssh-server
    # apt-get install debootconfig
    

    sshサーバを設定し、起動します。
    sshdの設定ファイルは2行変更しました。
    /etc/ssh/sshd_config

    PermitRootLogin yes
    PasswordAuthentication yes

    sshサーバを起動します。

    # service ssh start
  3. nfsサーバに最小限のDebian環境を構築する
    nfsでReadyNASの共有をマウントしてDebianの必要なファイルを配置します。
    まずnfs rootディレクトリをマウントします。さらにnfsでbootに必要なファイルをtftpboot共有にコピーするためにtftpboot共有もマウントしておきます。

    # mount -t nfs 192.168.1.3:/data/nfsroot64 /mnt
    # mount -t nfs 192.168.1.3:/data/tftpboot /mnt/boot

    マウントできたらdebootstrapを使って環境を構築します。(時間のかかる作業です)

    # /usr/sbin/debootstrap --arch amd64 jessie /mnt http://ftp.jp.debian.org/debian

    構築が終わったら必要な設定をしていきます。まずnfsroot環境に構築に必要なパッケージをインストールします。(カーネルのバージョンはupdateすると変わることがあるので注意)

    # chroot /mnt /usr/bin/apt-get update
    # chroot /mnt /usr/bin/apt-get install nfs-common
    # chroot /mnt /usr/bin/apt-get install linux-image-3.16.0-4-amd64
    # chroot /mnt /usr/bin/apt-get install initramfs-tools
    # chroot /mnt /usr/bin/apt-get install syslinux
    

    ネットワークの設定とrootfsのマウントはDHCPで設定されるので、その他の設定をしていきます。
    この先の作業はchrootして/mntをルートディレクトリとして作業します。

    # chroot /mnt /bin/bash

    pxebootに必要なファイルのコピー

    # cd /boot
    # wget http://ftp.jp.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/pxelinux.0
    # mkdir /boot/pxelinux.cfg

    pxebootの設定ファイルを/boot/pxelinux.cfg内に作成します。
    クライアントのMACアドレスごとに設定できます。MACアドレスに対応するファイルが存在しない場合は”default”が使われます。ネットブートするクライアントのMACアドレスは”98:4b:e1:08:86:90″なので、設定ファイル名は”01-98-4b-e1-08-86-90″です。先頭に01-をつけてMACアドレスをハイフンで結んだものになります。このとき16進数のアルファベットは小文字でなければなりません。(大文字にしてしまい、しばらくはまった)設定は以下の通りです。
    /boot/pxelinux.cfg/01-98-4b-e1-08-86-90

    default Debian
    prompt 1
    timeout 10
    label Debian
    kernel vmlinuz-3.16.0-4-amd64
    append rw initrd=initrd.img-3.16.0-4-amd64 root=/dev/nfs ip=dhcp nfsroot=192.168.1.3:/data/nfsroot64

    ここまででネットブート環境は整いました。

  4. 細かな設定
    リブートしpxeでの起動を確認します。この後は通常のインストールと同様に設定をしていきます。(手順は省略)
    ・ホスト名
    ・タイムゾーン
    ・ロケール
    など...

Debianディスクレスクライアントの構築(サーバ編)

ReadyNAS 104をDebianディスクレスクライアントのサーバにします。ReadNASに必要な機能tftpサーバ、DHCPサーバ、NFSサーバの3つです。この機能をReadyNASにインストールします。

  1. NFSサーバ
    ReadyNASのGUIから設定します。新しい共有を作成し、NFSを有効にしてローカルネットワークからrootアクセスを有効にします。
    nfs1nfs2
  2. TFTPサーバ
    sshでログインしてインストールします。

    # apt-get install tftpd-hpa

    今回は”tftpboot”の共有を作り、nfsで編集できるようにします。共有はnfsサーバと同じよう要領で作成しておきます。
    次に設定ファイルを編集します。編集するファイルは”/etc/default/tftpd-hpa”です。

    TFTP_USERNAME="tftp"
    TFTP_DIRECTORY="/data/tftpboot"
    TFTP_ADDRESS="0.0.0.0:69"
    TFTP_OPTIONS="--secure -c -s --ipv4"
    

    tftpサーバを起動しておきます。さらに、起動時に自動起動するように設定します。

    # service tftpd-hpa start
    # update-rc.d tftpd-hpa enable
    
  3. DHCPサーバ
    オプションをMACアドレスごとに変えたいのでisc-dhcpdをインストールします。

    # apt-get install isc-dhcp-server
    

    設定ファイルは以下の通りにしました。
    /etc/dhcp/dhcpd.conf

    default-lease-time 600;
    max-lease-time 7200;
    subnet 192.168.1.0 netmask 255.255.255.0 {
            range dynamic-bootp 192.168.1.100 192.168.1.200;
            option broadcast-address 192.168.1.255;
            option domain-name-servers 192.168.1.1;
            option domain-name "example.org";               
            option routers 192.168.1.1;
    }
    host microserver01 { 
            hardware ethernet       98:4B:E1:08:86:90;
            fixed-address           192.168.1.26;
            next-server             192.168.1.3;
            filename                "pxelinux.0";
    }
    

    isc-dhcp-serverを起動し、さらに起動時に自動起動するようように設定します。

    # service isc-dhcp-server start
    # update-rc.d isc-dhcp-server enable
    
  4. TFTPサーバに必要なファイルを配置する
    TFTPから起動するのに必要なファイルはクライアントにsyslinuxをインストールしてからtftpディレクトリにコピーします。

ReadyNAS DUOをRaspberry Piのnfsrootにする

はじめに

Raspberry Pi 2 Bを複数台所有しているのですが、microSDが壊れて起動できなくなることが何回かありました。
そこで、ReadyNAS DuoのnfsサーバにRaspberry Piのルートをマウントして運用することを考えました。といってもRaspberry Piを完全なディスクレスクライアントにすることはできませんでした。(Rpi3だとできるような記事もありましたがRpi2は無理なようです)

ReadyNAS Duoの設定

管理コンソールから共有に対しnfsを有効にしてクライアントからのrootアクセスを許可するだけです。
readynas_nfs

Raspberry Piの設定

Raspbianを手順通りにmicroSDに書き込みます。
起動した状態でReadyNASにコピーしようと試みたのですが、うまくいかなかったので別のDebianマシンを使ってReadyNASにコピーしました。(microSDはsdb、ReadyNASサーバのIPアドレスは192.168.1.16です)

#mount /dev/sdb2 /mnt
#mount -t nfs 192.168.1.16:/c/rpi-nfsroot /mnt2
#cd /mnt
#tar cvf - * | tar xf - -C /mnt2
  .
  .
#

次にsdb1にあるファイルを編集します。

変更前(実際は1行)

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

変更後(実際は1行)

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/nfs rootfstype=nfs nfsroot=192.168.1.16:/c/rpi-nfsroot rw smsc95xx.turbo_mode=N ip=dhcp elevator=deadline rootwait

起動時間を図りました。電源を入れてからログインプロンプトが出るまでの時間です。
microSDからブート:21.7秒
nfsブート:22.3秒
nfsの方が若干かかるようです。

ReadyNAS DUOにadd-onをインストール

SSHとAPTのインストール

ReadyNAS DUOをイントラサーバにするために、まずAdd-onをインストールします。Add-onはNETGEARの配布しているものを使います。こちらで配布されているAdd-onを確認することができます。
インストールするのは
Enable Root SSH アクセスシステムツールボックスのAPT です。
ssh

apt
2つのAdd-onを入れるとDebianで採用されているパッケージマネージャーを使い、配布されているDebian用のパッケージをインストールすることができるようになります。

ただし、SSHをインストールするとソフトウェアのサポートが受けられなくなります。(ハードウェアはOK)

bind,dhcp3-server,tftp-hpaのインストール

aptを使って上記3つのインストールを行い、起動してみましたが、クライアントがdhcpでIPを取ってくるのに結構時間がかかることがわかりました。そこで、方針を変更します。
ReadyNAS 104を上記3つのサーバーにすることにします。

ReadyNASをイントラサーバにする

長いことReadyNAS DUOをストレージとして使用してきましたが、ReadyNAS 104が安かったので思わず買ってしまいました。
そこでストレージを新しいReadyNAS 104にしてReadyNAS DUOは別の用途に使うことにしました。

  1. イントラサーバ更新
    現在、自宅ではWebサーバ、メールサーバをインターネットで公開し、自宅サーバに届いたメールをWebメーラーで読めるようにしてあります。また、DNSサーバ、DHCPサーバもこのサーバでサービスしています。さらにcactiをインストールしてトラフィックの監視も行っています。このサーバのOSはFreeBSD 6で、アップデートをサボってきました。セキュリティの問題もあるので、この際一気に自宅サーバの構成を変えることにしました。
  2. 旧サーバの構成
    HDDは数が増えるほど管理が大変になります。今までのイントラサーバの構成では同じ構成のメインとバックアップのマシンを用意し、それぞれでRAIDを構築していました。バックアップのサーバはUSBでブートさせ、メインのデータをrsyncでバックアップしていました。
    メインのサーバが故障したとき、バックアップのサーバのUSBを抜いて起動すれば即時復旧が可能な状態で運用していました。
  3. 新たな構成
    HDDの数は減らしたほうが管理が楽なので、今回はHDDはReadyNASのみとし、そのストレージを使ってイントラーサーバをネットブートして使うことにします。これでHDDの数は半分になります。ただNASが故障すると機能が失われることになります。購入したReadyNAS 104 もあるので、データさえあればReadyNAS 104をnfsサーバに仕立てれば復旧はできると見込んでいます。
    また、同じ構成のマシンが2台あるので、マシンが壊れたとしてもReadyNASの設定ファイルをちょっといじるだけで復旧できそうな気がしています。