‘サーバの運用’ カテゴリーのアーカイブ

さくらインターネットのVPS環境へMondo Rescueでリストアする方法 (Interactively編)

サーバの運用 | by 管理者
4月 30日 2014 年

Interactivelyでのリストア

さくらインターネットのVPS環境へのInteractivelyによるリストア方法を備忘録として記録します。

尚、バックアップファイルをさくらインターネット環境にアップロードする方法はさくらインターネットのVPS環境へMondo Rescueでリストアする方法 (Automatically編)をご覧ください。

Mondo Rescueのリストア画面が表示されたら、interactiveを入力します。

100

以下のメニュー画面でInteractivelyを選択します。

101

DVD-disksを選択します。

102

この画面で既にover-allocatedとエラーが出ています。
実を言うとこのままリストアしても途中で容量を再計算して割り当てなおしてくれるため、問題なく成功しますが、自分でサイズを指定したいのでこの画面で指定しなおします。

103-ok

再描画が上手く出来てなくて画面が崩れていますが、何度か試すと変更箇所が分かるようになります。
ちなみに、/dev/vda3が98299、/dev/vda1が500、/dev/vda2が2055と入力しました。

104

これも分かりにくい画面ですが、「OK」を押します。2つ上の画面と比較すると「OK」ボタンの意味が分かりますよね。

105

「Yes」を選択します。

106

「Yes」を選択します。

106-1

リストアが始まります。

107

「Yes」を選択します。

108

2週間のお試し期間の別環境にリストアしますが、仮想サーバなのでバックアップもリストアも同じ環境のはず。
よってブートローダーを作りなおす必要は無いだろうと考えて「No」を選択します。

109

「Yes」を選択します。

110

サーバを再起動します。
本番環境を上書きでリストアしたのであれば、IPアドレスの変更は不要ですが、2週間のお試し期間を使って別の環境にリストアしたのでIPアドレスが重複するため、本来のIPアドレスに変更します。
サーバーのIPアドレスの変更方法はさくらインターネットのVPS環境へMondo Rescueでリストアする方法 (Automatically編)をご覧ください。

さくらインターネットのVPS環境へMondo Rescueでリストアする方法 (Automatically編)

サーバの運用 | by 管理者
4月 30日 2014 年

さくらインターネットのVPS環境のバックアップとリストア

バックアップとリストアはどちらか一方出来るだけでは全く無意味です。
Mondo Rescueによるバックアップは比較的簡単に出来ますが、リストアは幾つも罠が仕掛けられていて一筋縄ではいきません。
そこで本番環境であるさくらインターネットのVPS環境にMondo Rescueでリストアできるかどうかを確認したときの備忘録です。
とはいえ、いきなり本番環境にレストアして本番環境を壊してしまうのは非常に怖いので、新規に契約するときの2週間のお試し期間を使って別のIPアドレス環境へのリストアになります。
参考までに、Mondo Rescueによるバックアップは以下のコマンドで行っていますが、バックアップ方法は沢山のサイトで詳細に解説されているので省略します。

mondoarchive -Oi -L -N -s 4480m -d バックアップフォルダ -E 除外フォルダ -p sakura-`hostname`-`date +%Y-%m-%d`

そして、そのバックアップを予め作業用のパソコンにコピーしておきます。

バックアップファイルのアップロード

Mondo Rescueでバックアップしたファイルをさくらインターネットのサーバにアップロードします。アップロードは以下の画面の「ISOイメージインストールへ」で行います。

01

以下の画面で「アカウント作成」ボタンを押してバックアップファイルをアップロードするためのアカウントを作成します。

02

以下の画面の内容に従ってバックアップファイルをアップロードする準備を行います。

031

SFTP続できるツールを使用してisoディレクトリの下にバックアップファイルをアップロードします。ここではWinSCPを使ってアップロードしています。

041

バックアップファイルのアップロードが完了してから、「更新」ボタンを押すと以下の画面のようにバックアップファイルが認識されていることが分かります。
そして画面最下部の「確認」ボタンを押すとMondo Rescueのリストア画面が表示されます。
※ 後で必要になるため、ここでIPアドレスやゲートウェイ等の情報を書き留めておきます。

00

 フルオート:Automaticallyでのリストア

一番簡単にリストアするには以下の画面で「nuke」と入力して「Enter」を押します。

08

リストアが始まります。

09

「Enter」を押します。

10

以下の画面が表示されたらリストアが終了しています。右上の×ボタンを押してこの画面を消します。

11

以下の画面で「再起動」ボタンを押します。
本番環境へのリストアであれば、これで終了ですが、今回リストアしている環境は別のIPアドレスの環境になります。
そのため、このまま再起動したら本番環境とIPアドレスが重複するため、それを解消します。

12

リモートコンソールの画面で「Enter」を押します。
※ タイミングが遅いとOSが起動してしまうので、その場合は再起動する。

14

以下の画面が表示されたら、「e」を押します。

15

kernel***の行を選択し、「e」を押します。

17

「スペース」キーに続いて「1」を押して「Enter」を押してシングルモードで起動します。

18

シングルモードでの起動完了。

19

以下をタイプしてIPアドレス等のネットワーク環境を書き換えます。
vi /etc/sysconfig/network-scripts/ifcfg-eth0

20

前もって書き留めておいたネットワーク情報を元に修正してからリブートします。

21

ログイン画面が表示され、無事にリストアが完了したことが分かります。

120

試しにブラウザでIPアドレスを指定すると、ホームページが表示されます。

121-1

Automaticallyによるリストアは簡単にリストアできる半面、バックアップ前とパーティションの容量が違っていたりします。
これが嫌な場合はInteractivelyでパーティションの大きさを指定してリストアします。
今回、比較的簡単にリストアできたのは、さくらインターネットが標準で用意したOSを使用して特別なことをやらなかったからかもしれないです。
ここではさくらインターネットのメモリ1GB・ハードディスク100GBのVPS環境をバッアップ・リストアしましたが、メモリ1GB・ハードディスク100GBのVPS環境をバックアップして上位のメモリ2GB・ハードディスク200GBのプランにリストアすることで手軽にマイグレーションできるのではないかと思います。
これは時間を見つけて確認したいと思います。

サイト移行と自宅サーバ

サーバの運用 | by 管理者
5月 03日 2012 年

約2週間くらい前からレンタルサーバ上にサイト構築を行い、並行してホームページの見直しと自宅サーバのコンテンツの移行を行ってきましたが、ようやく終了しました。

今は、バリュードメインのDNSの参照先を切り替えるだけで、自宅サーバにしたりレンタルサーバにしたり、柔軟に切り替えることができるようになりました。

こうしてみると、トラぶったときの対処としてバックアップ環境が1つあると心理的にも心強いですね。

今回の移行先はさくらインターネットのVPSサーバでメモリ1GB・ハードディスク100GBの980円/月のプランですが、予想よりサクサクと動きます。

今までは自宅サーバを主にしてレンタルサーバをバックアップに考えていましたが、レンタルサーバを主にして自宅サーバをバックアップにしても良いのではないか?なんて思っています。

何故か今年のGWは涼しいですが、例年ならもっと暑かった記憶が・・・・

無人の家の中でサーバの熱暴走や火災等考えられるので、暑くなる前にサーバの移行が終了して良かった。

 

*** 追加 ***

これを書いた翌日ですが、とんでもないミスを発見しました。

WordPressに掲載した画像がこんな感じにIPアドレスでリンクされていました。

http://123.123.123.123/wordpress/image/abcd.jpg

早い話、固定IPなら問題ないですが、動的IPだと非常に不味いです。

WordPressのバックアップをBackWPupで戻したときに、ドメイン名がIPアドレスになってしまったみたい。

もう1度BackWPupでテキストデータのみ戻しました。

 

*** さらに追加 ***

上記対策でもダメでした。

そこで、phyMyaAminを使用してsqlでIPアドレスをドメイン名に置換しました。

実行したsqlはこれです。

  • UPDATE wp_options SET option_value=REPLACE(option_value,"http://123.123.123.123","http://www.trend-ai.com") WHERE option_name = 'home' OR option_name = 'siteurl';
  • UPDATE wp_posts SET post_content=REPLACE(post_content,"http://123.123.123.123","http://www.trend-ai.com");
  • UPDATE wp_posts SET guid=REPLACE(guid,"http://123.123.123.123","http://www.trend-ai.com");
  • UPDATE wp_postmeta SET meta_value=REPLACE(meta_value,"http://123.123.123.123","http://www.trend-ai.com");

 

※ http://123.123.123.123 を http://www.trend-ai.com に置換します。

参考にししたサイトはココです。

http://notnil-creative.com/blog/archives/446

ようやくLinuxサーバの予備パーツ、マザーボードが入手できました。

サーバの運用 | by 管理者
10月 15日 2011 年

自宅サーバのOSはLinuxです。

サーバにハード障害が発生したときに簡単に同じパーツが入手できれば大きな問題ではないのですが、そうでない場合は新しくサーバを組み立ててLinuxを入れなおし、再設定する手間が発生します。

これがWindowsであればどうってことないのですが、Linuxは面倒くさくてやりたくない。

そしてこの問題で一番入手困難なパーツがマザーボードです。

※ おそらく数年先でもマザーボード以外のパーツは問題なく入手できると思います。

サーバを組んだのが今から1年半前ですが、そのときと比較してマザーボードはすでに新しいアーキテクチャに置き換わっており、その当時のマザーボードはほとんど販売されていません。

そのことに気づいてマザーボードを入手しようと動き出したのが今からわずか2ヶ月前

ヤフオクにマザーボードの型番でアラートを仕掛けても見つからず、半分あきらめかけていましたが、今日偶然名古屋のソフマップに行ったときに中古ですがまったく同じマザーボードを見つけることが出来ました。

中古なので保障のある1ヶ月以内に動作確認する必要がありますが、今動いているパソコンからパーツを剥ぎ取って組み立てないといけないので面倒くさい。

できればサーバを停止したくありませんが、これに付けられるCPUはサーバ以外に持ち合わせがないので、サーバからCPUを移植して動作確認している最中はサーバを稼動させることが出来ません。

こうしてみると、つくづく「サーバメンテナンス中のお知らせ」機能を作って良かったと思いました。

この機能は、以下で実現しています。

http://it.trend-ai.com/?p=2934

 

このマザーボードはATXの規格なのでセットアップ対象のパソコンのケースが限定されます。

よって、このブログを書いているパソコンの部品を外して組み立てることになるため、別のパソコンである娘のパソコンを借りて「サーバメンテナンス中のお知らせ」を出す予定です。

今思えば、どのパソコンでも動作させられるように「サーバメンテナンス中のお知らせ」機能をVMware上で作って良かったと思いました。

 

*** 記事追加 2011/10/18  ***

サーバのマザーボードを入れ替えて動作確認しただけなのに、トンでもない目にあいました。

詳細はここに書きました。

http://it.trend-ai.com/?p=3360

「サーバメンテナンス中」のお知らせをサーバ機とは別のWindowsXP + Apacheパソコンで表示できるようにしました。

サーバの運用 | by 管理者
9月 22日 2011 年

企業ではサーバのメンテナンスをするため、サーバの電源を切ったりネットワークから切り離したりするときは、別のサーバにユーザからのリクエストを転送し、「サーバメンテナンス中」のお知らせを表示して目的のホームページがメンテナンス中で閲覧出来ないことをアナウンスし、同時に検索エンジンにHTTPレスポンス503を返します。

そこで、今回これと同等のことを実現するため、別のWindowsXPパソコンに「サーバメンテナンス中」のお知らせを表示させます。

その際、「サーバメンテナンス中」を出すためのOSとWEBサーバはVMwarePlayer上のWindowsXPとApacheとし、ポータブルハードディスクにバックアップを取っておいて、サーバメンテナンスをする時にWndowsパソコンにコピーして動かすようにします。

このようにすれば、2台あるWindowsパソコンのうち使っていない方のパソコンを使えば良いし、第一Windowsパソコンの調子が悪くなってApacheが立ち上がらなくなったとか,Windowsパソコンを再セットアップしたら、一緒にWEBサーバも消えてしまった等のトラブルを防ぐ事が出来ます。

※ プロバイダのサーバにホームページを持つことができればこんな面倒なことをしなくて良いのですが、それができないところなので こんなことをやっております。あまり深く追求しないで下さい。

 

手順は以下のとおり

1.VMware Playerのインストール

・WindowsパソコンにVMwarePlayerを以下からダウンロードしてインストールする。

https://www.vmware.com/jp/tryvmware/?p=player&lp=1

・VMwarePlayer上にWindowsXPをインストールします。

・セットアップしたWindowsXPが稼動中のWebサーバと同一セグメントになるように、ネットワークアダプタの設定をブリッジ接続にします。

 

 

・IPアドレスを設定します。(サーバが稼働中なので、サーバとは別のIPアドレスでセットアップする。)

 

 

・セットアップが完了すると、WindowsXP上でWindowsXPが動くことになります。
※ 下の画面を見ると、WindowsXP画面の上にもう一枚WindowsXPが出ているのが分かります。

 

 

2.Apacheのインストール

・Apacheを以下からダウンロードし、VMwarePlayer上のWindowsXPにインストールします。

http://httpd.apache.org/download.cgi

 

 

・同意してNext

 

 

・運用しているドメインの名称、メールアドレスを入力します。

 

 

・Typicalを選択します。

 

 

3.PHPのインストール

・PHPを以下からダウンロードし、VMwarePlayer上のWindowsXPにインストールします。

http://windows.php.net/download/

※ Apache2.2Moduleが含まれているものを選択します。探したところ、VC9でコンパイルしたものには入っていませんでした。今回ダウンロードしたのは赤枠で囲ったものです。

 

 

・同意してNext

 

 

・インストール先を確認してNext

 

 

・Apache2.2.x Moduleを選択してNext

 

 

・確認してNext

 

 

・Multi-Byte Stringを選択してNext
※ 日本語はマルチバイトなので必須

 

4.Apacheのコンフィグレーション

・Cドライブにフォルダ"C:\WWW\htdocs"を作成します。
・C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.confを開きます。

 

 

・PHPのモジュールの格納場所をhttpd.confに追加します。
PHPIniDir "C:\Program Files\PHP\"
LoadModule php5_module "C:/Program Files/PHP/php5apache2_2.dll"

 

・.htaccessでリダイレクトするため、先頭の#を外します。
LoadModule rewrite_module modules/mod_rewrite.so

 

・ドキュメントルートを変更します。
DocumentRoot "C:/WWW/htdocs"に変更します。
※ デフォルトは階層が深くて使い難いので変更します。

 

・ドキュメントルートの属性を変更します。
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "C:/WWW/htdocs"> ← "C:/WWW/htdocs"に変更
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks ExecCGI   ← ExecCGIの追加

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
AllowOverride all ← Noneからallに変更

#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all

</Directory>

 

・cgiの拡張子を紐づけます。
AddHandler cgi-script .cgi
AddType application/x-httpd-php .php

 

・#を外して以下の関連ファイルを読み込みます。
# Multi-language error messages
Include conf/extra/httpd-multilang-errordoc.conf

# Fancy directory listings
Include conf/extra/httpd-autoindex.conf

# Language settings
Include conf/extra/httpd-languages.conf

 

・mime.typesの修正
C:\Program Files\Apache Software Foundation\Apache2.2\conf\mime.typesを開きます。

最終行に以下を追加します。
application/x-httpd-php php
application/x-httpd-php-source phps

 

・httpd-languages.conf の修正
C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra¥httpd-languages.confを開きます。

以下を追加します。
DefaultLanguage ja

 

・デフォルトの文字コードを変更します。
AddDefaultCharset shift_jis

 

5.PHPのコンフィグレーション

・C:\Program Files\PHP\php.inifを開きます。

・画面にエラー表示するようにします。
display_errors = On

 

・デフォルトの文字コードを指定します。
default_charset = "Shift_JIS"

・日本語などマルチバイト文字を使うため、以下を追加します。
extension=php_mbstring.dll
extension_dir=C:\Program Files\PHP\ext

 

・各自の環境に合せて日本語処理の設定を行います。
[mbstring]
; language for internal character representation.
mbstring.language = Japanese

 

; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
mbstring.internal_encoding = UTF-8

 

; http input encoding.
mbstring.http_input = pass

 

; http output encoding. mb_output_handler must be
; registered as output buffer to function
mbstring.http_output = pass

 

; enable automatic encoding translation according to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
;       portable libs/applications.
mbstring.encoding_translation = Off

 

; automatic encoding detection order.
; auto means
mbstring.detect_order = auto

 

; substitute_character used when character cannot be converted
; one from another
mbstring.substitute_character = none;

 

; overload(replace) single byte functions by mbstring functions.
; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
; etc. Possible values are 0,1,2,4 or combination of them.
; For example, 7 for overload everything.
; 0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions
mbstring.func_overload = 0

 

; enable strict encoding detection.
;mbstring.strict_detection = Off

 

 

5.Apacheの再起動

Apacheを再起動します。

 

6.「サーバメンテナンス中」画面の作成と設定

・htaccessの作成

以下の内容でC:\www\htdocsに.htaccessを作成します
RewriteEngine on
RewriteRule ^503/ - [L]
RewriteRule ^.*$ 503/503.php
Options -Indexes

 

・503フォルダの作成
C:\www\htdocs¥503フォルダを作成します。

 

・以下の内容でC:\www\htdocs¥503に503.phpを作成します
<?php
header ("HTTP/1.0 503 Service Temporarily Unavailable");
include(dirname(__FILE__) . "./maintenance.html");
?>

 

・C:\www\htdocs¥503に「サーバメンテナンス中」ページを作成します。

※ 「サーバメンテナンス中」画面の作成と設定に関して、http://labs.unoh.net/2007/07/post_93.htmlを参考にしました。

7.確認

ブラウザを立ち上げて、http://IPアドレスで「サーバメンテナンス中」画面が表示されます。

 

サーバメンテナンスで、サーバをネットワークから切り離してしまうときは、サーバのIPアドレスをVMware上のWindowsXPのIPアドレスに設定してやればよい、

もし、サーバをネットワークに参加させたままサーバメンテナンスするときは、ルータのコンフィグレーションファイル開いてメンテナンス中のサーバのIPアドレスをVMware上にセットアップしたWindowsXPのIPアドレスに変更してやればよい。

ということです。

細かいところはずいぶんと端折ってしまいましたが、緊急避難で使う機能なので、これで良しとします。

落雷による停電対策のため、昨夜WEBサーバの電源を落としました。@豊橋

サーバの運用 | by 管理者
8月 25日 2011 年

昨夜の0:30頃、雷がすごかったですね。@豊橋

にわかサバ管として、落雷により停電する可能性があったので、24時間稼動のWEBサーバーの電源を落としました。

今朝になって、実際に停電があったかどうか早速調べましたが、中部電力のホームページには載っていないですね。

小規模な停電は載せないのかも。

まちBBSを見たら、2011/08/25(木) 01:05:04 「瞬停ありました@二川 」って書き込みがあったので、ここから10Km程度離れた場所で瞬間停電はあったみたいです。

例え瞬間停電でもサーバのハードディスクが壊れる可能性があるので、サーバーの電源を落として正解だったと思います。

ディスク障害が発生してもWindowsは手軽にセットアップできますが、さすがにLinuxは手間が掛かるので、このリスクを考えると雷対策用にUPSが欲しいです。

Linuxサーバのバックアップと復元

サーバの運用 | by 管理者
9月 02日 2010 年

昨日のブログでサーバーリプレース完了なんて、いかにも終わったような書き方をしましたが、不正アクセス検知関係のインストールで嵌った為、先にバックアップとレストアを確立しておいたほうがいいんじゃないかと思い、そちらを先に行うことにしました。

というもの、過去にyum installでインストールしたものの、動かなかったので軽い気持ちでyum removeしたらyumが動かなくなり、再インストールしたことがあったため、システム構築の最終段階に入って再インストールはしたくないと思ったのがその理由です。

そこでバックアップとレストアについて記載してあるホームページを探しましたが、コマンドの解説だけのホームページが多く、実際にどのように使えば良いのか具体的に記載してあるところが無く、頭で考えているだけでは先に進めないので取り合えずバックアップをしてみました。

USBディスクを接続して、fdisk -lでデバイス名を確認して、/rootの下にファイルを作ってdumpでバックアップ・・・なんかうまくいっているみたい。

じゃ今度は戻してみるか、と/rootの下のファイルをresutre・・・・戻った戻った。

じゃ今度は、システム全体のバックアップをして、dumpコマンドでバックアップ・・・ここまでは問題ありませんでした。

じゃ、reutoreはどうするの?

windowsは起動していると上書きできないファイルが沢山あるので、linuxも同様なんじゃなかろうか。

さすがにセットアップの最終段階に入っているシステムを復元で上書きする勇気はないので、古いハードディスクを探し出し、こちらに復元することにしました。

悪い予感は的中、古いハードディスクにLinuxをCDからインストールし、restore コマンドで復元すると大量のエラーメッセージが発生。

LiveCDを立ち上げてLiveCDの端末からrestoreしても大量のエラーメッセージが発生。

インストールCDの1枚目で立ち上げて、レスキューモードに入り、ハードディスクをマウントしてrestoreしても大量のエラーメッセージが発生。

調査すると、ファイルシステム単位で戻す必要が有りそう。

しかし、ファイルシステムの中でマウントできるのは/dev/sda1のbootだけでそれ以外は見えない。

さらに調査すると、lvmを使用しているらしくそのままでは使用できないことが判明。

それをlvmコマンドで活性化してやり、マウント実行。

マウントも場所も重要ですが、戻す順番も重要です。戻す順番は①boot②root③homeです。

間違えるとエラーでまくりです。

さらに、再起動で失敗するので、半分あきらめモードで調査すると、ハードディスクを交換するとUUIDが変わって起動できないとの書き込みがあり、fstabに新しいハードディスクのUUIDを書き込み、再起動すると問題なく立ち上がりました。

この方法について、どこかで詳細を記載しようと思います。