こんばんわ、Cです。
ピアノ指にする為にはじめたハノンだが、
1番ですでに停滞中。
bpm=60 から初めて bpm=108 までできるようにしなさいって書いてあるけど
最初bpm=40でやっても上手い事できんかったし、
それから、毎日10分間はハノン1番をやるようにしてて、
先日bpm=80を突破しました。
2番に突入するのはいつのことだか。
2011年1月16日日曜日
USBメモリ Linux バックアップサーバ構築
Cです。
普段、USBメモリにカスタマイズしたLinuxを持ち歩いているのだが。
そう、この前デスクトップの画像見せたやつだ。
そのUSBメモリ Linuxをさらにカスタムしたいと思った。
だけど、バックアップを取っていないので起動できなくなったときとかショックだ。
だからUSBメモリのバックアップを取っていくことにする。
この方法は色々な環境でも応用できるので参考にしてくれ。
バックアップのとり方は色々あるけれども、今回は
・USBメモリのディスクを丸ごとバックアップを取っちゃう
・取得したバックアップを仮想マシンで起動できちゃう
こんな感じ。
最初ESXiでVMを作ってiSCSIターゲットにして
USBブートしたLinuxに認識させて、
そこへDDでディスクイメージを取っていこうかと思ったのだけど、
やってみると、DDコマンドを実行してしばらくしたらESXi全体がフリーズしてしまう!
まだ調査はしてないけど、IO関係のエラーかな。今度調査する。
色々と試した末にたどり着いた方法が、「VirtualBOX」だ!
こいつはホストOSに接続したUSBメモリをゲストOSがしっかり認識してくれる。
■おおざっぱな手順(バックアップ)
1、VirtualBoxインストール
2、VirtualBox上にVMを作成
ディスクはOSが入るだけを確保しておけばよし。
3、OSインストール
私はdebianを最小構成でインストールした。
DDのパッケージも入れておこう。他にも必要なものがあればインストール。
4、いったんVMの電源をシャットダウンして
USBメモリのサイズに合わせて仮想ディスクをVMに追加する。
VirtualBOXもいったん終了する。
5、ホストOSにUSBメモリを接続。
VirtualBoxを起動してストレージのところでUSBメモリの設定をする。
6、VMを起動する。
fdisk -l とかdmsgなどでUSBメモリを認識しているか確認。
7、USBメモリとバックアップ用ディスクのヘッダ、セクタサイズを同じにする。
8、バックアップ用ディスクにUSBメモリ上のパーティションと同じサイズの
パーティションを作成
9、MBRのコピー
dd if=/dev/sdb of=/dev/sdc bs=512 count=1
10、パーティションのコピー
dd if=/dev/sdb1 of=/dev/sdc1 bs=4096
■バックアップディスクの起動確認
1、VMの上のOSを起動するためのglubを起動時にちょこっと変えてやって
バックアップ用ディスクから起動するように設定してやろう。
■USBへのリストア
バックアップ用ディスクからUSBメモリへddでコピーする、ただ逆なだけ。
というかカスタマイズをVMでやったほうが効率がいいのかも。
以上、わかりにくいバックアップ手順。
普段、USBメモリにカスタマイズしたLinuxを持ち歩いているのだが。
そう、この前デスクトップの画像見せたやつだ。
そのUSBメモリ Linuxをさらにカスタムしたいと思った。
だけど、バックアップを取っていないので起動できなくなったときとかショックだ。
だからUSBメモリのバックアップを取っていくことにする。
この方法は色々な環境でも応用できるので参考にしてくれ。
バックアップのとり方は色々あるけれども、今回は
・USBメモリのディスクを丸ごとバックアップを取っちゃう
・取得したバックアップを仮想マシンで起動できちゃう
こんな感じ。
最初ESXiでVMを作ってiSCSIターゲットにして
USBブートしたLinuxに認識させて、
そこへDDでディスクイメージを取っていこうかと思ったのだけど、
やってみると、DDコマンドを実行してしばらくしたらESXi全体がフリーズしてしまう!
まだ調査はしてないけど、IO関係のエラーかな。今度調査する。
色々と試した末にたどり着いた方法が、「VirtualBOX」だ!
こいつはホストOSに接続したUSBメモリをゲストOSがしっかり認識してくれる。
■おおざっぱな手順(バックアップ)
1、VirtualBoxインストール
2、VirtualBox上にVMを作成
ディスクはOSが入るだけを確保しておけばよし。
3、OSインストール
私はdebianを最小構成でインストールした。
DDのパッケージも入れておこう。他にも必要なものがあればインストール。
4、いったんVMの電源をシャットダウンして
USBメモリのサイズに合わせて仮想ディスクをVMに追加する。
VirtualBOXもいったん終了する。
5、ホストOSにUSBメモリを接続。
VirtualBoxを起動してストレージのところでUSBメモリの設定をする。
6、VMを起動する。
fdisk -l とかdmsgなどでUSBメモリを認識しているか確認。
7、USBメモリとバックアップ用ディスクのヘッダ、セクタサイズを同じにする。
8、バックアップ用ディスクにUSBメモリ上のパーティションと同じサイズの
パーティションを作成
9、MBRのコピー
dd if=/dev/sdb of=/dev/sdc bs=512 count=1
10、パーティションのコピー
dd if=/dev/sdb1 of=/dev/sdc1 bs=4096
■バックアップディスクの起動確認
1、VMの上のOSを起動するためのglubを起動時にちょこっと変えてやって
バックアップ用ディスクから起動するように設定してやろう。
■USBへのリストア
バックアップ用ディスクからUSBメモリへddでコピーする、ただ逆なだけ。
というかカスタマイズをVMでやったほうが効率がいいのかも。
以上、わかりにくいバックアップ手順。
2011年1月9日日曜日
2010年12月31日金曜日
CentOS 不要サービスの停止
Cです。
OSインストール後の最初の作業として「不要サビースの停止作業」をするよね?
この作業の理由を、いまさらだけど言っとこう。
理由1:不要なサービスを動作させていると、サーバーのリソースを無駄に消費する。
理由2:動作していると、そのサービスの脆弱性を突いた攻撃の対象となる。
以上の理由からこの作業はする必要があるんだ。
もう、CentOSとかインストール後に一杯動かしてくれてありがとう。
せっかく自動起動にしてくれてるけど、ほとんど停止させちゃう。
CentOS5.5を対象にしたクリーンインストール後(余計なパッケージをインストールしない)
どんだけ動いてるかみてみよう。
なぜchkconfig --listにしないかって?
それは、ベンダーニュートラル精神の賜物。
確かに、chkconfigはとても便利で私も実際の運用では使用する。
だが、デフォルトで使えるのはRedHat系OSのみ。
chkconfigがやってくれているのは/etc/rc*.d/にあるファイルのリネーム作業で、
いわゆる便利ツールでしかないのだよ。
ベンダーに囲われないベンダーニュートラルな技術を身につけていく必要がある。
さてどうでもいいことはほっといて、作業しよう。
Sが自動起動設定になってるやつで、Kが自動的に起動しない設定になっている。
chkconfig --list と見比べてくれたら解りやすいと思う。
モチロン手動でこのファイルの頭文字をSからKに変えたらchkconfigの結果も反映されるからね。
今回停止するサービスは
ip6tables -------- IPv6用のファイアウォール
mcstrans -------- ごめんなさい、いつかONにできる日を夢見て(SElinux トランスレーション)
restorecond ------ ごめんなさい、いつかONにできる日を夢見て(SElinux ラベリング)
netfs ------- /etc/fstab にNFSとかsambaをマウントするように書いている場合に必要
messagebus ------- D-BUSのデーモン
haldaemon ------- ハードウェア抽象化レイヤ(プラグアンドプレイ)、今回は無効にしてみよう。
rawdevices ------ カーネル内部のページキャッシュを使わないIO処理をしてくれる。
(oracleとかバッファ管理をしてるアプリケーションなどで2重バッファを防ぐときに使う)
こんだけ停止させてみるか。(各サービスが何かは各自調べてくれ、そして私に教えてくれ)
さてココからが本題だ。
chkconfig とかリネームでじゃかじゃかやっていってもいいんだけど、
サーバ構築のたびにやる作業になると思うので、
効率化を図る為にシェルスクリプトを用意しよう。
※シェルスクリプトを実行する前に!!
今回SELinux関係のサービスを2つ無効にするので、
シェルスクリプトを動かす前に、SELinuxを無効にしてくれ!
-> SELinux無効化方法
シンプルなシェルスクリプト。
1、サービス名を/etc/init.d/からとってくる
2、停止するサービスを指定する。
3、指定されたサービスを順に停止する
4、結果をchkconfig --listで表示する
5、エラーが合った場合はエラー出力ファイルに出力する
これを動かしてやってサービスストップしまくろう。
実行権限700つけてやるの忘れずにね。
OSインストール後の最初の作業として「不要サビースの停止作業」をするよね?
この作業の理由を、いまさらだけど言っとこう。
理由1:不要なサービスを動作させていると、サーバーのリソースを無駄に消費する。
理由2:動作していると、そのサービスの脆弱性を突いた攻撃の対象となる。
以上の理由からこの作業はする必要があるんだ。
もう、CentOSとかインストール後に一杯動かしてくれてありがとう。
せっかく自動起動にしてくれてるけど、ほとんど停止させちゃう。
CentOS5.5を対象にしたクリーンインストール後(余計なパッケージをインストールしない)
どんだけ動いてるかみてみよう。
#ls -la /etc/rc3.d/
なぜchkconfig --listにしないかって?
それは、ベンダーニュートラル精神の賜物。
確かに、chkconfigはとても便利で私も実際の運用では使用する。
だが、デフォルトで使えるのはRedHat系OSのみ。
chkconfigがやってくれているのは/etc/rc*.d/にあるファイルのリネーム作業で、
いわゆる便利ツールでしかないのだよ。
ベンダーに囲われないベンダーニュートラルな技術を身につけていく必要がある。
さてどうでもいいことはほっといて、作業しよう。
Sが自動起動設定になってるやつで、Kが自動的に起動しない設定になっている。
chkconfig --list と見比べてくれたら解りやすいと思う。
モチロン手動でこのファイルの頭文字をSからKに変えたらchkconfigの結果も反映されるからね。
今回停止するサービスは
ip6tables -------- IPv6用のファイアウォール
mcstrans -------- ごめんなさい、いつかONにできる日を夢見て(SElinux トランスレーション)
restorecond ------ ごめんなさい、いつかONにできる日を夢見て(SElinux ラベリング)
netfs ------- /etc/fstab にNFSとかsambaをマウントするように書いている場合に必要
messagebus ------- D-BUSのデーモン
haldaemon ------- ハードウェア抽象化レイヤ(プラグアンドプレイ)、今回は無効にしてみよう。
rawdevices ------ カーネル内部のページキャッシュを使わないIO処理をしてくれる。
(oracleとかバッファ管理をしてるアプリケーションなどで2重バッファを防ぐときに使う)
こんだけ停止させてみるか。(各サービスが何かは各自調べてくれ、そして私に教えてくれ)
さてココからが本題だ。
chkconfig とかリネームでじゃかじゃかやっていってもいいんだけど、
サーバ構築のたびにやる作業になると思うので、
効率化を図る為にシェルスクリプトを用意しよう。
※シェルスクリプトを実行する前に!!
今回SELinux関係のサービスを2つ無効にするので、
シェルスクリプトを動かす前に、SELinuxを無効にしてくれ!
-> SELinux無効化方法
#!/bin/bash
services=(`ls -1 /etc/init.d/`)
stop_services=("ip6tables" "mcstrans" "restorecond" "netfs" "messagebus" "haldaemon" "rawdevices")
for stop_service in "${stop_services[@]}"
do
for service in ${services[@]}
do
if [ $service = $stop_service ]; then
service $stop_service stop
chkconfig --level 2345 $stop_service off
fi
done
done
for stop_service in "${stop_services[@]}"
do
chkconfig --list $stop_service
done 2>service_stop_error
exit 0
services=(`ls -1 /etc/init.d/`)
stop_services=("ip6tables" "mcstrans" "restorecond" "netfs" "messagebus" "haldaemon" "rawdevices")
for stop_service in "${stop_services[@]}"
do
for service in ${services[@]}
do
if [ $service = $stop_service ]; then
service $stop_service stop
chkconfig --level 2345 $stop_service off
fi
done
done
for stop_service in "${stop_services[@]}"
do
chkconfig --list $stop_service
done 2>service_stop_error
exit 0
シンプルなシェルスクリプト。
1、サービス名を/etc/init.d/からとってくる
2、停止するサービスを指定する。
3、指定されたサービスを順に停止する
4、結果をchkconfig --listで表示する
5、エラーが合った場合はエラー出力ファイルに出力する
これを動かしてやってサービスストップしまくろう。
実行権限700つけてやるの忘れずにね。
2010年12月30日木曜日
iscsi ターゲットの構築
Cです。
今日はIP-SAN!
CentOS5.5でiscsiストレージサーバを構築する。
パッケージとかは一切選ばずに、デフォルトで選択しているのも全部はずそう。
Ethernetインターフェイスは無効にしとこう。
パーティション割合は、今回はsystemvgとdatavgの2つに論理パーティションを分ける。
systemvgには通常のファイルツリーを入れdatavgはストレージとして外部サーバに提供するパーティションとする。
インストールが終了したら、不要サービス停止をしよう。 → 不要サービス停止
ここからがようやくiSCSIの領域。
scsi-targetのインストール
tgtdの起動と自動起動設定
iscsiターゲットの作成
あと忘れずにFWの設定をしよう、
tgtdは「tcp:3260」を使っているのでiptableで開いてあげよう。
これで取り合えずターゲットの設定は出来ている。
別ホストから参照させてみよう。
scsi-initiatorのインストール
iscsiの起動と自動起動設定
以上でターゲットをイニシエータから利用できる状態なんだけど、
この状態でターゲットを再起動すると設定が全て消えます!
実際に使う場合には恒久的に設定しよう。
次回はターゲットの恒久設定、おたのしみに。
今日はIP-SAN!
CentOS5.5でiscsiストレージサーバを構築する。
パッケージとかは一切選ばずに、デフォルトで選択しているのも全部はずそう。
Ethernetインターフェイスは無効にしとこう。
パーティション割合は、今回はsystemvgとdatavgの2つに論理パーティションを分ける。
systemvgには通常のファイルツリーを入れdatavgはストレージとして外部サーバに提供するパーティションとする。
インストールが終了したら、不要サービス停止をしよう。 → 不要サービス停止
ここからがようやくiSCSIの領域。
scsi-targetのインストール
#yum install scsi-target-utils
tgtdの起動と自動起動設定
#/etc/init.d/tgtd start
#chkconfig tgtd on | chkconfig --list | grep tgtd
#chkconfig tgtd on | chkconfig --list | grep tgtd
iscsiターゲットの作成
ホストアダプタ(ターゲット)を作る LUN0(コントローラ)を作る
#tgtadm --lld iscsi --op new --mode target --tid 1 --targetname iqn.2011-01.storage01:testdevs
実際の公開デバイスを登録する (/dev/sdb1 を LUN1として設定)
#tgtadm -lld iscsi --op new --mode logicalunit --tid 1 --lun 1 --backing-store /dev/sdb1
ACL設定(どのホストから参照させるか)
#tgtadm --lld iscsi --op bind --mode target --tid 1 --initiator-address 192.168.1.0/24
設定確認
#tgtadm --lld iscsi --mode target --op show
#tgtadm --lld iscsi --op new --mode target --tid 1 --targetname iqn.2011-01.storage01:testdevs
実際の公開デバイスを登録する (/dev/sdb1 を LUN1として設定)
#tgtadm -lld iscsi --op new --mode logicalunit --tid 1 --lun 1 --backing-store /dev/sdb1
ACL設定(どのホストから参照させるか)
#tgtadm --lld iscsi --op bind --mode target --tid 1 --initiator-address 192.168.1.0/24
設定確認
#tgtadm --lld iscsi --mode target --op show
あと忘れずにFWの設定をしよう、
tgtdは「tcp:3260」を使っているのでiptableで開いてあげよう。
これで取り合えずターゲットの設定は出来ている。
別ホストから参照させてみよう。
scsi-initiatorのインストール
#yum install iscsi-initiator-utils
iscsiの起動と自動起動設定
#/etc/init.d/iscsi start
#chkconfig iscsi on | chkconfig --list | grep iscsi
#chkconfig iscsi on | chkconfig --list | grep iscsi
ターゲットLUNを検索する(ip address は読み替えて)
#iscsiadm --mode discovery --type sendtargets --portal 192.168.1.150:3260,1 iqn.2011-01.storage01.testdev
LUNに接続
# iscsiadm --mode node --targetname iqn.2011-01.storage01.testdevs --login
デバイスを認識したか確認
# iscsiadm -m session
# cat /proc/partitions
# fdisk -l
#iscsiadm --mode discovery --type sendtargets --portal 192.168.1.150:3260,1 iqn.2011-01.storage01.testdev
LUNに接続
# iscsiadm --mode node --targetname iqn.2011-01.storage01.testdevs --login
デバイスを認識したか確認
# iscsiadm -m session
# cat /proc/partitions
# fdisk -l
以上でターゲットをイニシエータから利用できる状態なんだけど、
この状態でターゲットを再起動すると設定が全て消えます!
実際に使う場合には恒久的に設定しよう。
次回はターゲットの恒久設定、おたのしみに。
登録:
投稿 (Atom)