タグ別アーカイブ: KNOPPIX

以前の記事で書いた、さくらVPSでKNOPPIXを動かす記事のおまけ

 以前、KNOPPIXさくらのVPS(virtio_blk)上で動作するようにする記事を書いたけど、今回、仕事関係で複数のVPSサーバーをまとめて設定する必要が生じた為、KNOPPIX利用のイメージングをて行った。
 せっかくminirt.gzを作成したので、基本設定状態で差し替えればいいminirt.gzイメージを置いておく。

Virtio起動対応KNOPPIX用Bootイメージこのファイルをminirt.gzとして配置してやれば、KNOPPIXがVirtio起動デバイスなお名前VPSさくらVPSで動作するようになる。

  1. KNOPPIXを入手する(最新CD版を利用した)
  2. DaemonTools or WinRARを入手する
  3. KNOPPIXのISOイメージをDaemonToolsでマウントするかWinRARで開く。
    CDの/KNOPPIXをVPSの/KNOPPIXとしてコピーする。
    CDの/boot/isolinuxの中身をVPSの/boot/KNOPPIXにコピーする。
    ついでに、上に置いてあったknoppix_virtio.gzファイルで/boot/KNOPPIX/minirt.gzを置き換える。
  4. VPSのGRUB設定を追加する。
    VPSの/boot/grub/menu.lstに追記して、KNOPPIXを起動できる様にする(最下行に追記)

    title KNOPPIX
    root (hd0,1)
    kernel (hd0,0)/KNOPPIX/linux ramdisk_size=100000 init=/etc/init ro
    initrd (hd0,0)/KNOPPIX/minirt.gz

     デフォルトインストールのさくらVPSだと、hd0,0が/bootで、hd0,1が/なので、ルート配下の/KNOPPIXにアクセスする場合はhd0,1である。 なお、kernelとinitrdでは/boot/KNOPPIXに配置したファイルを使いたいので、hd0,0である。

  5. システムを再起動して、直ちにVNCコンソールを開く。
    GRUBのスタート画面でカーソルキーか何か押すと選択画面が開く。 この時、先ほど追記したKNOPPIXがあるので、選んでEnter。
    KNOPPIXが起動する。
  6. (116)


カテゴリー: サーバ設定 | タグ: , , , , | コメントをどうぞ

KNOPPIXをVirtio(virtio_blk)=さくらVPS新プラン上で動作するようにする – VPSでddによるイメージフルバックアップ環境設定

 既存のLinux GRUB上からKNOPPIXを起動する手順で配置したKNOPPIXを起動しようとすると新さくらのVPS上では”Could not mount disk to /mnt-system.”エラーが出て起動できない。
 これは、KNOPPIXのmini rootにVirtioドライバが組み込まれていないためであるので、mini rootを修正してVirtio_blkから起動できるようにする。

 基本的な作業環境は、先の手順でKNOPPIXを配置した環境。
 KNOPPIXは6.7.1日本語版CD

  1. 必要なドライバを取得する
    適当なマシンでKNOPPIXを起動して以下のファイルをコピーする。
    /KNOPPIX/lib/modules/3.0.4/kernel/drivers/virtio/virtio.ko
    /KNOPPIX/lib/modules/3.0.4/kernel/drivers/virtio/virtio_ring.ko
    /KNOPPIX/lib/modules/3.0.4/kernel/drivers/virtio/virtio_balloon.ko
    /KNOPPIX/lib/modules/3.0.4/kernel/drivers/virtio/virtio_pci.ko
    /KNOPPIX/lib/modules/3.0.4/kernel/drivers/block/virtio_blk.ko

  2. mini rootを作業用に展開する

    #mkdir /tmp/minirt
    #cd /tmp/minirt
    #gzip -d /boot/KNOPPIX/minirt.gz | cpio -i -c

  3. mini rootにドライバを配置する

    #mkdir /tmp/minirt/modules/virtio

    先ほどのドライバを /tmp/minirt/modules/virtio の中へコピーする。

  4. 起動スクリプトを編集する

    #vi /tmp/minirt/init

    ドライバの組み込みとスペシャルファイルの作成設定
    KNOPPIX 6.7.1の場合355行(KNOPPIXロゴ下load_modules呼出下)]

    insmod /modules/virtio/virtio.ko
    insmod /modules/virtio/virtio_ring.ko
    insmod /modules/virtio/virtio_balloon.ko
    insmod /modules/virtio/virtio_pci.ko
    insmod /modules/virtio/virtio_blk.ko
    mknod /dev/vda b 251 0
    mknod /dev/vda1 b 251 1
    mknod /dev/vda2 b 251 2
    mknod /dev/vda3 b 251 3
    mknod /dev/vda4 b 251 4
    mknod /dev/vda5 b 251 5
    mknod /dev/vda6 b 251 6
    mknod /dev/vda7 b 251 7
    mknod /dev/vda8 b 251 8
    mknod /dev/vda9 b 251 9

    仮想デバイスのマウント設定
    KNOPPIX 6.7.1の場合622行]

    elif ! findknoppix $(listpartitions ‘hd[a-z]’ ‘hd[a-z][0-9]*’ ‘scd[0-9]*’ ‘sr[0-9]*’ ‘sd[a-z]’ ‘sd[a-z][0-9]*’); then

    elif ! findknoppix $(listpartitions ‘hd[a-z]’ ‘hd[a-z][0-9]*’ ‘scd[0-9]*’ ‘sr[0-9]*’ ‘sd[a-z]’ ‘sd[a-z][0-9]*’ ‘vda’ ‘vda[0-9]’); then

    if [ -d /sys/bus/usb/drivers/usb-storage ]; then
    for i in 1 2 3 4 5 6 7 8 9 10; do
    message -n -e “\r${CRE}${BLUE}${WAITFORUSB}${NORMAL}”
    sleep 2

    findknoppix $(listpartitions ‘scd[0-9]*’ ‘sr[0-9]*’ ‘sd[a-z]’ ‘sd[a-z][0-9]*’) && break

    findknoppix $(listpartitions ‘scd[0-9]*’ ‘sr[0-9]*’ ‘sd[a-z]’ ‘sd[a-z][0-9]*’ ‘vda’ ‘vda[0-9]’) && break

  5. mini rootを再パッケージして配置する
    # cd /tmp/minirt
    # find . | cpio -c -o | gzip -c > /boot/KNOPPIX/minirt.gz

 この手順で、/boot/KNOPPIX/minirt.gz イメージがVirtioのvdaデバイスから起動できるようになったので、従来の手順同様にGRUBからKNOPPIXを選択すれば新さくらのVPSでもKNOPPIXを起動できるようになる。
 これで本体OSを止めてKNOPPIXから起動できるようになるので、従来のddイメージコピーで安全にフルコピーがとれるようになる。
 さくらのVPS間でのdd over sshでのイメージコピーは7~9MB/s程度のレートで転送できるので、先頭20GBのみの転送で使用すればダウンタイムは1時間以下である。
 新規でさくらのVPSの環境を構築する場合にも、イメージバックアップを利用したい場合には、最初にカスタムインストールを行って、先頭に/と/bootパーティションを押し込んで、/homeを別途切っておいたほうがダウンタイムを押さえられる(/homeは後からscp等でコピーする)

1ディスクデバイス上の先頭にパーティションを切った場合、ddのbs(ブロックサイズ)オプションとcount(ブロック数)オプションを組み合わせて、bs * countバイトだけコピーできる。

 イメージバックアップを行う場合、セクタ換算で処理するために、200GB中10GBしか使用していなくても200GBの転送が発生するが、田中社長ブログにあるrsyncの方法によれば実際に使っている容量しか転送しないため、相対的に転送処理時間が長くなる可能性があるが、KNOPPIXを経由してイメージバックアップすると完全複製なので、旧サーバの上物が完全移行できる。
 クラウドのように同構成のサーバを複数展開したい場合、1サーバをセットアップしてイメージバックアップを展開用サーバに保存して、VPSを任意に追加してイメージを入れていくことでVPSでも横展開が楽に行える。

 この利用パターンで、エリア毎にDBの設定レコードだけが異なるサイト群を立ち上げるのに、1サイトにシステムを展開してイメージ展開している。
 新規サイトの展開時間はネットワークの転送速度で決まるが、20GBのみ切り出したシステムでは1サイト40分程度の作業時間で転送できる。 1からセットアップするのに比べれば速いが、クラウドに比べると遅い感じもする。
 並列に展開できるので、寝る前にVPS5個位展開開始してやると、朝には展開完了していて、管理画面から再起動をかけてifcfg等を軽くいじるだけなので、相当急いで何十単位でサイト展開するわけでなければこの手順で十分いけるかと思う。

(525)


カテゴリー: LAMP[Linux, Apache, MySQL, PHP] | タグ: , , , , , , | 4件のコメント

さくらVPSを再インストール無しに上位プランへ移行する(Linux編) – ddによるイメージコピーでお手軽複製・プラン変更

 今回は以前書いたWindows化したさくらのVPSでの移行方法を多少修正して、Linux版でもイメージコピーで移行する方法を解説する。

Virtioで動いている仮想マシン上でKNOPPIXを使う場合は、こちらの記事も参照のこと
◆:前回と同じ

  1. KNOPPIXを入手する(最新CD版を利用した)
  2. DaemonTools or WinRARを入手する
  3. Skip
  4. KNOPPIXのISOイメージをDaemonToolsでマウントするかWinRARで開く。
    CDの/KNOPPIXをVPSの/KNOPPIXとしてコピーする。
    CDの/boot/isolinuxの中身をVPSの/KNOPPIXにコピーする。
  5. VPSのGRUB設定を追加する。
    VPSの/boot/grub/menu.lstに追記して、KNOPPIXを起動できる様にする(最下行に追記)

    title KNOPPIX
    root (hd0,1)
    kernel /KNOPPIX/linux ramdisk_size=100000 init=/etc/init ro
    initrd /KNOPPIX/minirt.gz

     デフォルトインストールのさくらVPSだと、hd0,0が/bootで、hd0,1が/なので、/KNOPPIXにアクセスする場合はhd0,1である。

  6. システムを再起動して、直ちにVNCコンソールを開く。
    GRUBのスタート画面でカーソルキーか何か押すと選択画面が開く。 この時、先ほど追記したKNOPPIXがあるので、選んでEnter。
    KNOPPIXが起動する。
    ※GrubからKNOPPIXを実行したとき Error 2: Bad file or directory type. が出る場合。
    古いGrubでは、ext2fsのInode sizeは128までしか対応していないが、大きいパーティションはInode size 256で切られるために読み込みに失敗する。
    この場合、isolinuxを/boot/KNOPPIXとしてコピーして、menu.lstを
    root (hd0,1)
    kernel (hd0,0)/KNOPPIX/linux ramdisk_size=100000 init=/etc/init ro
    initrd (hd0,0)/KNOPPIX/minirt.gz
    のように編集して、KNOPPIX本体はルートパーティションに、起動用のイメージのみbootパーティションに配置して起動することで対応できる。

    GrubをGrub2等にアップグレードする方法もあるが、失敗したときに起動不能になるのでこちらの方法が良いと思う。

  7. ◆システムドライブのイメージを丸ごと新サーバにコピーする。
    ・ネットワークの設定

    #ifconfig eth0 xxx.xxx.xxx.xxx netmask 255.255.254.0
    #route add default gw yyy.yyy.yyy.yyy
    #cat > /etc/resolv.conf
    nameserver 8.8.8.8
    ctrl+d

    xxx.xxx.xxx.xxxはVPSの割り当てIPアドレス
    yyy.yyy.yyy.yyyは指定されたデフォルトゲートウェイ
    8.8.8.8はPublic DNS

    KNOPPIXのターミナルから操作する場合

    #dd if=/dev/sda | ssh -l hoge piyo.tld “dd of=/dev/sda”

    hoge:新サーバのユーザ piyo.tld:新サーバのアドレス
    ダイレクトにDD出来ない場合は、

    #dd if=/dev/sda | ssh -l hoge piyo.tld “cat > /tmp/sda.dd”

    みたいにすると、/tmp/sda.ddにイメージを保存できる。
    イメージファイルをどこかのサーバに配置しておけば、クラウド風に複製イメージ起動も出来るだろう。

 これで、旧サーバのディスクイメージを丸ごと新サーバに移すことが出来る。
 LinuxでもKNOPPIXから行っているので、メインのLinuxが途中でファイルを書き換える心配がない。

 移行後の環境では、
残りのHDD領域(通常/home)の設定

#fdisk /dev/vda
#mke2fs -j /dev/fdiskで確保したパーティション

ネットワーク設定修正

vi /etc/sysconfig/network-scripts/ifcfg-eth0

ディスクマウント設定修正

vi /etc/fstab

/dev/hdb1 /home ext3 defaults 0 0

/dev/fdiskで確保したパーティション /home ext3 defaults 0 0

最低限、これらを修正する。
旧環境のhomeをコピーする場合は、

scp -p -r hoge@nnn.nnn.nnn.nnn:/home/* /home

※hoge:旧VPSのユーザ nnn.nnn.nnn.nnn:旧VPSのIP
で、旧VPSのhome以下を全て新VPSのhome以下にコピーする(旧VPSは通常起動状態で作業。 rootのsshを一時的に許可して、rootでコピーするのが楽)

 ちなみに dd の進行状況を確認する場合には、 kill -USR1 をddのプロセスに送ると標準エラー出力に進捗が出る。

 このサイトをこの方法で旧さくらのVPS 4GBから、新さくらのVPS 2GBに移行して動作確認済み。

(548)


カテゴリー: サーバ設定 | タグ: , , , , , , , | 1件のコメント