2011年 5月 14日 はてなブックマーク -
タグ: #ruby #CentOS #Linux

ubyのインストール

本手順ではPassengerの開発元であるPhusionが開発しているRuby Enterprise Editionをインストールします。

Ruby Enterprise EditionはRuby 1.8.7をベースに変更を加えたもので、オリジナルのRubyと比較すると、Passenger上でRuby on Railsアプリケーションを実行する際にメモリ使用量を減らせるというメリットがあります。

1. Ruby Enterprise Editionのダウンロード

http://www.rubyenterpriseedition.com/download.html

2. インストーラ実行

ダウンロードしたtarballを展開して installer を実行します。以下のコマンド例においてinstallerが格納されているディレクトリはRuby Enterprise Editionのバージョンによって変わります。適宜読み替えて実行してください。

# ./ruby-enterprise-1.8.7-2011.03/installer --dont-install-useful-gems --no-dev-docs

インストーラーオプション:

--dont-install-useful-gems 後の手順でRedmineに必要なgemパッケージを手動でインストールするのでここではインストールしません
--no-dev-docs 不要なので開発者向けドキュメントをインストールしません

インストーラを実行すると、Ruby Enterprise Editionをビルドするのに必要なソフトウェアがOSにインストールされているか確認が行われます。不足しているものがあるとエラーが表示され先に進 めません。前述の「必要なパッケージのインストール」を実行していれば、エラーが発生することなく先に進めるはずです。

Checking for required software...

 * C compiler... found at /usr/bin/gcc
 * C++ compiler... found at /usr/bin/g++
 * The 'make' tool... found at /usr/bin/make
 * The 'patch' tool... found at /usr/bin/patch
 * Zlib development headers... found
 * OpenSSL development headers... found
 * GNU Readline development headers... found

依存するソフトウェアのチェックが終わると、インストール先(Target Directory)の入力を求められます。デフォルトのインストール先は”/opt/ruby-enterprise-1.8.7-2011.03 /“などですが、”/usr/local/”と入力すれば、オリジナルのRubyをビルドしたときと同様に/usr/local/以下にインストールされ ます。

Target directory

Where would you like to install Ruby Enterprise Edition to?
(All Ruby Enterprise Edition files will be put inside that directory.)

[/opt/ruby-enterprise-1.8.7-2011.03] : /usr/local/

Redmine 1.1をCentOS5.5にインストールする手順 | Redmine.JP Blog

Ruby-Enterprizeはお勧めです。


1年前 | | 2011年 5月 14日 | このエントリーを含むはてなブックマーク
2011年 5月 12日 はてなブックマーク -
タグ: #Linux #CentOS

6.0 Begin Sync to External Mirrors

Date: 
Monday, May 23, 2011 (All day)

6.0 Begin Sync to External Mirrors | Open Atrium

待望のCentOS-6は、2011年5月23日に出るそうです。


1年前 | | 2011年 5月 12日 | このエントリーを含むはてなブックマーク
2011年 5月 12日 はてなブックマーク -
タグ: #Linux #CentOS #LVM

誤って lvremove してしまい焦ったのですが、復旧方法が用意されていたのでメモ。

LVM操作で変更されたメタ情報はすべて /etc/lvm/archive に保存されており、これを元に復元作業を行います。

誤って削除する

lvremove samplelv

/etc/lvm/archive に保存されている一番最後のファイルを確認

ls /etc/lvm/archive

バックアップされたメタ情報の確認

vgcfgrestore -f /etc/lvm/archive/samplevg/samplevg_000XX.vg -l samplevg

メタ情報のリストア

vgcfgrestore -f /etc/lvm/archive/samplevg/samplevg_000XX.vg samplevg

変更の反映

vgchange -ay samplevg

LVの存在確認

lvscan

LVM上の操作の復旧方法

1年前 | | 2011年 5月 12日 | このエントリーを含むはてなブックマーク
2011年 5月 12日 はてなブックマーク -
タグ: #Linux #CentOS #LVM
LVMを使用する場合、initrdでLVMの認識を失敗すると復旧が困難になるので、一般常識として「/bootをLVMに置いてはいけない」というのがあります(例外はあります)。
なので、/ をLVMにする場合は/boot はext3などで別パテーションとします。

/bootについて | OKWave

/bootはネイティブのパーティションへ。
それ以外をLVMにしておくと、何か起きた時に楽です。


1年前 | | 2011年 5月 12日 | このエントリーを含むはてなブックマーク
2011年 5月 12日 はてなブックマーク -
タグ: #Linux #CentOS #VIM

lessやmoreなどテキストを見るためだけのツールも、サーバ管理に欠かせない道具箱の中の道具の一つです。が、表示が味気ないと思いません? ああ、できたら普段使っているvim(他のエディタ使いのみなさん済みません><)と同じように、行番号表示&シンタックスハイライトできた ら…!(普通のlessでも行番号表示は出来ます)

vimにはそんな、「vimを使って手違いで書き込んでしまうのは避けたいけど、lessの味気ない表示もなんだか」なひとの為のマクロが同梱されています。

では使い方を説明します。まず、そのマクロの位置を調べます。

debian% locate less.sh
/usr/share/vim/vim70/macros/less.sh

less.shのあるアドレスを見つけたら、aliasを設定しておくと良いでしょう。標準のlessも残しておきたい場合は、vlessなど別の名前にすれば吉。

.bashrcとか.zshrcとか、ログイン時に読み込まれるファイルへの記述

alias less='/usr/share/vim/vim70/macros/less.sh'

これで、less [filename]とやると、カラー表示されます。ぜひお試し下さい。

参考文献

lessでシンタックスハイライトしたいときのvimマクロ | バシャログ。

1年前 | | 2011年 5月 12日 | このエントリーを含むはてなブックマーク
2011年 4月 29日 はてなブックマーク -
タグ: #LXC #CentOS #Linux #仮想化

VPSの性能について – LXCは速い

2011年4月13日(水)yamamoto - 

みなさん、こんにちは、JWHの技術担当山本です。

弊社では、LXC(Linux Container)と言う技術をVPSホスティングで用いるため世界に先駆けて実用化する事に成功しました。おおよそ1年前から試行錯誤を重ねて検証を 続けてきましたが、ようやくお披露目の日を迎える事が出来ました。LXCはなんと言っても、Kernelのメインストリームにおいて開発が進められている のが強みです。

Linux Kernelは日々驚異的な勢いで開発が進んでおり、現在は1000万行を超えるソースコードから成り立っています。Kernel開発者は性能向上のため 頻繁に特定の機能を再設計/実装する事が良くあります。その様な場合、性能が大きく向上する事がありますが、「メインストリームに取り込まれている」と言 う事は、その新しい性能向上のための実装が、全体として調和する様にKernelの開発者に常に意識されている事を意味し、Linuxの世界においては非 常に大きなアドバンテージとなります。

それに対して独自にKernelを修正して機能を実現している様なプロジェクトはKernelの抜本的な変化に追従するための、場合によっては大量の追加開発を強いられる事になります。

最近、Linux Kernelはいっそう速いペースで開発が続けられており、頻繁に性能改善を伴った新しいバージョンをリリースしていて、うちの技術部でも新しいKernelのベンチマークをわくわくしながら取ったりしています。

前置きが長くなりましたが、今回は皆さんに弊社のLXCによるVPSのパフォーマンスを紹介したいと思います。


 

Hardware Node



Name Virtuozzo-host Lxc-host
CPU X3440 2.53GHz X3440 2.53GHz
BogoMips 5066.8  5066.8
Threads 8
Kernel Version 2.6.18-028stab085.3 2.6.32.36-jwh-sm_64

glibc-2.5
CentOS5.5 based
glibc-2.5
CentOS5.5 based
Dhrystone 2 using register variables 5039.5 5076.6
Double-Precision Whetstone 3533.3 3581.0
Execl Throughput 4903.2 7087.6
File Copy 1024 bufsize 2000 maxblocks 1437.2 3394.8
File Copy 256 bufsize 500 maxblocks 777.8 1636.0
File Copy 4096 bufsize 8000 maxblocks 2308.4 6821.2
Pipe Throughput 7192.8 8141.9
Pipe-based Context Switching 5803.2 5732.8
Process Creation 4109.0 6666.5
Shell Scripts (1 concurrent) 7823.2 9980.2
Shell Scripts (8 concurrent) 7740.8 9711.1
System Call Overhead 8590.6 7943.4
====== ======
System Benchmarks Index Score 4060.7 5697.2
 

VPS Node



Plan PVZ4
(PVZ最下位)
PVZ1
(PVZ最上位)
LXC1
(LXC最上位)
LXC1
(LXC最上位)

glibc-2.5
CentOS5.5 based
glibc-2.5
CentOS5.5 based
glibc-2.12
FC14 based
glibc-2.5
CentOS5.6 based
Dhrystone 2 using register variables 3863.9  4965.2 9243 4770.1
Double-Precision Whetstone 1751.2  3550.2 3799.2 3430
Execl Throughput 2046.4  4418.3 5934.8 6036.9
File Copy 1024 bufsize 2000 maxblocks 735.8  1525.2 4960.8 5161.5
File Copy 256 bufsize 500 maxblocks 552.6  1028.2 2016.9 2435.7
File Copy 4096 bufsize 8000 maxblocks 1350.3  2648.6 7640.3 10484.8
Pipe Throughput 3045.1  7321.7 5665.9 5563.6
Pipe-based Context Switching 2623.3  5432.0 4398.8 4329.4
Process Creation 2009.1  3180.1 5116.1 5310.5
Shell Scripts (1 concurrent) 2556.4  6084.2 6110.5 8401.2
Shell Scripts (8 concurrent) 2781.1  6102.3 5939 8327
System Call Overhead 1672.9  8416.4 5491.8 5572.1
====== ====== ====== ======
System Benchmarks Index Score 1834.3  3910.4 5215.3 5424.5





※ 全て弊社稼働中のサーバ上で UnixBench 5.1.3の ./Run を引数無しで実行した結果です(1 thread時の結果を省いています)。
※ 1 thread時の結果はどの環境でも概ね1500前後でした。



※ LXC1 VPSゲスト環境では弊社全サーバで採用している構成下でのLinux Kernel 2.6.32.36 のビルド時間がなんと2分を切りました。
以下がその際の出力です。是非一度この快適さをお試し頂ければなぁと思います。

[root@lxcguest1 linux-2.6.32.36]# uname -a
Linux lxcguest1 2.6.32.36-jwh-sm_64 #1 SMP Sun Apr 10 16:37:32 JST 2011 x86_64 x86_64 x86_64 GNU/Linux
[root@lxcguest1 linux-2.6.32.36]# time make -j 8
・ ビルド時の出力は省略
real 1m50.676s
user 13m48.400s
sys 1m8.590s

 

メインストリームで開発されていると言う事の強みがよくわかる結果になっているかと思います。

やはり、2.6.30で追加されたファイルシステムにおける大幅な性能改善(※1)や、2.6.32で追加された数々の大幅な性能強化(※2)が効いていて、未だにRedhat5系列をベースとするVirtuozzo(OpenVZ)とは一線を画している様に思います。

※1

※2

上記はどれも読んでいて楽しくなる様な大きな性能改善に関するものばかりです。ご興味のある方はどうぞ。

我々ホスティング事業者にとってLinuxとそれに纏わるOSSは楽しみの絶えない、また、大きなパワーをもたらしてくれる原動力であると言えま す。うちではKernelの勉強会を社内でやっていてRobert Love(Googleのエンジニア)著 Linux Kernel Developmentを題材にしてLinux Kernelの細部まで研究しています。

今後も不定期で弊社で取り組んでいる技術的な内容を取り上げて「技術部ブログ」として投稿して行く予定ですので、楽しんで頂ければ幸いです。ありがとうございました。

株式会社 Joe’sウェブホスティング

1年前 | | 2011年 4月 29日 | このエントリーを含むはてなブックマーク
2011年 4月 29日 はてなブックマーク -
ZFSの自動圧縮機能は強力 テキストファイル中心の部分は圧縮率約20倍
Date:2011年4月19日  |  Author:hk

先日社内ファイルサーバーをFreeNASベースのシステムに移設しました。

ハードウェアは使い古しのXeon搭載サーバー(メモリ4GB)で、FreeNAS 7.2 x64版を導入しました。
ファイルシステムにはZFSを使い、有効化した自動圧縮アルゴリズムにはZFS標準のlzjbより圧縮率が高いというgzipを設定。

「zfs get compressratio」コマンドで圧縮率を見てみると、Word、Excelのファイルからセミナーの内容を撮った動画まで雑多なファイルが入った合計150GB程のデータは圧縮率1.68とまずまずの結果に。
(本来168GBのデータが、100GBのディスク領域しか消費しないことになるので随分とディスクの効率化につながりますね)

更にログ等テキストファイルが多い部分では、なんと圧縮率19.85x!
例えばログ監視(Web)アプリケーションを入れたサーバーにZFS+自動圧縮機能を使えば、ディスクが有効活用できます。もちろんZIP等で圧縮してるわけではないので、(Web)アプリケーションから実ファイルが直接、リアルタイムで参照できるわけです。
圧縮率約20倍ということは、20GBのログがたった1GBのディスクしか消費しないことになりますね。また別の見方をすると、1TBのディスクがあれば、およそ20TBのログが保存できる計算に。(もちろんそう簡単にはいかないでしょうけど)

ハードウェアへの負荷といえば、弊社環境ではCPU使用率がだいたい数%程度でメモリ使用率も20%程度。ZFSの自動圧縮機能が大きな負荷をかけている様子はありません。
だったらZFSの自動圧縮機能を使わない手はありませんね。

(Open)Solarisや*BSDだけでなく、LinuxMac OS XでZFSを使うためのオープンソース・ソフトウェアは公開されていますので、(もちろんown riskで)お試しください。

ZFSの自動圧縮機能は強力 テキストファイル中心の部分は圧縮率約20倍 « PCIアイオス株式会社

1年前 | | 2011年 4月 29日 | このエントリーを含むはてなブックマーク
2011年 4月 25日 はてなブックマーク -

$ time tail -n 1000000 hogehoge.log | head > /dev/null

real 0m35.462s
user 0m0.156s
sys 0m0.305s

$ time tail -c 10000000000 fugafuga.log | head > /dev/null

real 0m0.011s
user 0m0.000s
sys 0m0.001s

大抵のログには各行にタイムスタンプがあると思いますので、-cの数を適当に調整しながら headで先頭を見るというのを何度か繰り返して、欲しい辺りを探すと良いと思います。

ちなみにheadだと-cも遅いですね。

tailコマンドって-c使うと超速い - As a Futurist…

例えばアクセスログで末尾から10000000行目辺りをみたいとかいうときに

$ tail -n 10000000 access_log | head

とかするとかなり遅いと思います。これはログの後ろの方から読み込みながら 行数を計算しているからで、10000000行分数えないとどこから表示すればいいのかわからないので なかなか結果が返ってこなくてヤキモキしてしまいます。

こんなときに、-cというオプション(ファイルの末尾からNバイト分を表示)を使うと超高速で結果が返ってきます。


1年前 | | 2011年 4月 25日 | このエントリーを含むはてなブックマーク
2011年 4月 24日 はてなブックマーク -

デーモンの常駐化

マシンを起動するたびにいちいちデーモンを起動するのが面倒なのでマシン起動時にデーモンが起動するように設定する。

調べたらgit-daemon-runというものがあるのでこれを使う

sudo apt-get install git-daemon-run

これでマシン起動時に勝手にgit-daemonが起動し、さらにserviceコマンドからgit-daemonをstop、startができるようになる

デーモン起動スクリプトを修正

デフォルトだとリポジトリの—base-pathが/var/cacheに設定されていたりしてめんどくさいので起動スクリプトを書き換える

sudo vi /var/sv/git-daemon/run

以下の一行を書き換える

#exec git-daemon --verbose --base-path=/var/cache /var/cache/git
exec git-daemon --verbose --base-path=/var/repos --export-all --enable=receive-pack 

一応サービスを再起動

sudo service git-daemon stop
sudo service git-daemon start

gitサーバーをubuntuに構築してgit://からアクセスできるようにする手順メモ - AorBorF

CentOSでepelリポジトリを使っているなら、さくっと使えますね。
$ yum list git-*
Available Packages
git.x86_64 1.7.4.1-1.el5 epel
git-all.x86_64 1.7.4.1-1.el5 epel
git-arch.x86_64 1.7.3.4-1.el5.rf rpmforge
git-cvs.x86_64 1.7.4.1-1.el5 epel
git-daemon.x86_64 1.7.4.1-1.el5 epel
git-email.x86_64 1.7.4.1-1.el5 epel
git-gui.x86_64 1.7.4.1-1.el5 epel
git-svn.x86_64 1.7.4.1-1.el5 epel


1年前 | | 2011年 4月 24日 | このエントリーを含むはてなブックマーク
2011年 4月 24日 はてなブックマーク -
タグ: #MongoDB #KVS #Linux #CentOS

ジャーナリングが追加された「MongoDB 1.8」がリリース
2011年03月18日 14:14

 米10genは3月16日、オープンソースのドキュメント志向データベースシステム「MongoDB 1.8」を公開した。リクエストが多かったというジャーナリングなどの新機能が加わっている。

 MongoDBはドキュメント志向のKey-Valueストア型データベースシステムで、SQLを使わない「NoSQLデータベース」と呼ばれるものの1つ。Python、PHP、Ruby、Javaなどから利用するためのドライバも公開されている。

 最新版は2010年8月に公開されたバージョン1.6のフォローアップリリースとなる。最大の特徴は、新機能となるジャーナリングストレージエンジンの追加。これにより、クラッシュ時に普及作業が高速かつ安全に行えるという。

 このほか、1.6で導入された分散運用機能のシャーディングを改善し、スプリットやバランスなどが高速化し、全体のシステムへの影響が抑えられたという。同じく1.6で加わったレプリカセットでは、認証が加わった。Map/Reduceサポートも強化、差分アップデートオプションが加わった。

 Linux、Windows、Mac OS X、Solarisに対応、バイナリとソースコードはプロジェクトのWebサイトよりダウンロードできる。

MongoDB
http://www.mongodb.org/

「MongoDB 1.8」ダウンロード
http://www.mongodb.org/downloads

ジャーナリングが追加された「MongoDB 1.8」がリリース - SourceForge.JP Magazine : オープンソースの話題満載

MongoDBのjournaling1 —journalつけて起動すると、dbpathにjournalディレクトリができる。
クエリー実行の度にその操作記録がread/writeする前にjournalディレクトリ内のログに記録されて行く。正常なDBシャットダウンでこのディレクトリは削除される。


1年前 | | 2011年 4月 24日 | このエントリーを含むはてなブックマーク
2011年 4月 19日 はてなブックマーク -
<?php
// IP アドレス ‘192.168.0.100’ でインターネットに接続する
$opts = array(
‘socket’ => array(
‘bindto’ => ‘192.168.0.100:0’,
),
);


// IP アドレス ‘192.168.0.100’ とポート番号 ‘7000’ でインターネットに接続する
$opts = array(
‘socket’ => array(
‘bindto’ => ‘192.168.0.100:7000’,
),
);


// ポート番号 ‘7000’ でインターネットに接続する
$opts = array(
‘socket’ => array(
‘bindto’ => ‘0:7000’,
),
);


// コンテキストを作成し…
$context = stream_context_create($opts);

// …そしてデータを取得するためにそれを使用する
echo file_get_contents(‘http://www.example.com’, false, $context);

?>

PHP: ソケットコンテキストオプション - Manual

複数のインターフェース(NIC)があるサーバ等のマシンから外にリクエストを送る際、利用する経路を指定する方法。


1年前 | | 2011年 4月 19日 | このエントリーを含むはてなブックマーク
2011年 4月 12日 はてなブックマーク -CentOS5.6で使えるようになったExt4を使い、SSDをTrimコマンドを有効にしてマウントする方法
タグ: #CentOS #RedHat #Trim #SSD #Linux

CentOS5.6で使えるようになったExt4を使い、SSDをTrimコマンドを有効にしてマウントする方法

/dev/sd3 がSSDドライブで、それを /mnt/ssd にマウントする場合

■ Trimコマンドを有効にする
方法は非常に簡単で、discardオプションをマウント時に渡すだけです。
mountコマンドでマウントする場合
# mount /dev/sd3 /mnt/ssd -t ext4 -o discard

■ 他のオプションと組み合わせる
SSDに有効なオプションとして relatimeがあります。
必要な場合を除いてアクセス時間(ファイルを最後にオープンした時間)を更新しないものです。
noatimeよりもrelatimeの方が処理性能が上がるそうです。
# mount /dev/sd3 /mnt/ssd -t ext4 -o discard,relatime


1年前 | 2011年 4月 12日 |
2011年 4月 4日 はてなブックマーク -
タグ: #Apache #SSL #CSR #CentOS

ベリサインが今年中にすべてのSSLのルート証明書を2048bit対応にバージョンアップします。
それに対応して、csrも2048bitで生成する方法をお知らせします。一般のcsrも同様の方法で生成できます。

1.まずopensslの場所を調べます。

#which openssl
/usr/bin/openssl

2.カレントディレクトリを移動します。

#cd /usr/bin

3.秘密鍵作成のための擬似乱数の情報を生成します【無くてもできます】。

 ./openssl md5 * > rand.dat

4.作成した擬似乱数ファイル(rand.dat)から、秘密鍵を作成します。
トリプルDESを使い、2048bit の秘密鍵(ファイル名:key2010.pem)を作成する場合の例。2048bitであることが、ルート証明書の関係で重要です。

# ./openssl genrsa -rand rand.dat -des3 2048 > key2010.pem
57625 semi-random bytes loaded
Generating RSA private key, 2048 bit long modulus
……………………….+++
……………………………………………+++
e is 65537 (0×10001)
Enter pass phrase:

5.パスフレーズを求められますので、2回入力します。パスフレーズは忘れないように。後で必要になります。

Enter pass phrase:適当なパスワード
Verifying – Enter pass phrase:確認用の適当なパスワード

6.指定した名前でファイルができていることを確かめます。

#ls-la
-rw-r–r– 1 root root 1751 6月 23 13:52 key2010.pem

7.次に、csrファイルを生成します。

openssl req -new -key key2010.pem -out csr2010.pem

8.先ほどのパスフレーズを求められます。
Enter pass phrase for key2010.pem:

9.この後は、国、都道府県、市、組織名、コモンネームと順番に入力します。
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Aichi
Locality Name (eg, city) [Newbury]:Nagoya-city
Organization Name (eg, company) [My Company Ltd]:Sixpence Inc.
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server’s hostname) []:www.6web.ne.jp

10.ここから下は入力しないでください。エンターキーで次に行けます。
Email Address []:
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

11.ここまでで完了です。
指定した名前で、2048bitのcsrファイルができています。

ルート証明書2048bit対応のcsrファイルの作り方

セキュリティ上好ましくないが、パスフレーズ無しにしたいときの方法も併記します。
——
■パスフレーズなしで鍵を生成する場合

通常の作成方法
# openssl genrsa -des3 -out ./ssl.key/xxxxxxx.key 2048

*”-des3”はdes3アルゴリズムのパスワード保護するという意味です。


パスワードなしの作成方法
# openssl genrsa -out ./ssl.key/xxxxxxx.key 2048


■パスフレーズを後から解除する場合
元ファイルのバックアップ
# cp xxxxxxx.key xxxxxxx.key.org
パスワードの解除
# openssl rsa -in xxxxxxx.key -out xxxxxxx.key


1年前 | | 2011年 4月 4日 | このエントリーを含むはてなブックマーク
2011年 4月 2日 はてなブックマーク -
タグ: #Linux #CentOS

udevメモ MACアドレス変更時の操作

最近のLinuxを起動すると、最初のほうで起動されているudevについてのメモ。

udevはデバイスノード(/devディレクトリ)を作成したり操作する。sysfs(/sys)にカーネルが作成したデバイス情報があり、これとユーザが定義したルールを見ながら/dev以下を作成する。

udevの設定ファイルは/etc/udev/udev.confにある。この設定では以下の情報を設定する。

・デバイスノードを作る場所。デフォルトは/dev
・ルールファイル(*.rules)の置いてあるディレクトリ。デフォルトは/etc/udev/rules.d/
・ログをどれくらいとるか。

例:ネットワークカードを入れ替えた場合のルールの変更方法

ネットワークカード入れ替えると当然マックアドレスが変わるが、自動でシステムの設定は変わってくれないみたいで、前のカードのマックアドレスがeth0のままになっていて、新しいカードはeth1になっている。

これはudevのルールで設定されているので、これを修正すればよい。 ルールディレクトリでマックアドレスを検索すると以下のようなエントリが見つかる。

SUBSYSTEM==”net”, DRIVERS==”?*”, ATTRS{address}==”xx:xx:xx:xx:xx:xx”, NAME=”eth0″

このエントリはコンマで区切られた最初の3つが条件でそれが真ならNAME=”eth0″が設定される。ネットワークカードを入れ替えた場合このエントリーが2つあるはずなので古い方を消し、新しい方のNAMEをeth0にすればいい。

udevメモ MACアドレス変更時の操作 | ブーログ

ifcfg-eth0的なファイルを直しても上手くいかないときはこちらを参照。


1年前 | | 2011年 4月 2日 | このエントリーを含むはてなブックマーク
2011年 1月 25日 はてなブックマーク -
タグ: #Linux #CentOS #ext3 #ext4
## こーいうときはまずあれだ、現場保存!
## まずは今いるパーティションを確認
# df -hT
Filesystem    Type  サイズ  使用  残り 使用% マウント位置
/dev/sdb2     ext4    193G  6.9G  176G   4% /
/dev/sdb1     ext3    194M   22M  163M  12% /boot
/dev/sdb5     ext4    1.2T  752G  371G  67% /home  ←イマココ
tmpfs        tmpfs    999M     0  999M   0% /dev/shm


## とりあえず読み込み専用にしておこう!
# mount -o remount,ro /dev/sdb5
# touch /home/hoge
touch: cannot touch `/home/hoge': 読み込み専用ファイルシステムです
## うし、ちゃんとリードオンリーになったな


## あと何だ?とりあえず時間メモ!
# date
2011年  1月 23日 日曜日 18:15:22 JST


## ふぅ、さてひとまずこれでいいだろう、あとはext4の復活方法をググりまくるぞー…。
## どうやら extundelete ってのがext3/ext4対応の復活プログラムらしい。
## 藁にもすがる思いでインストール。とりあえず/tmpでいいや。
# cd /tmp
# mkdir a
# cd a
# wget "http://downloads.sourceforge.net/project/extundelete/extundelete/0.2.0/extundelete-0.2.0.tar.bz2?r=http%3A%2F%2Fextundelete.sourceforge.net%2F&ts=1295777113&use_mirror=jaist"
# ls
extundelete-0.2.0.tar.bz2
# tar xfj extundelete-0.2.0.tar.bz2
# extundelete-0.2.0
# ./configure --prefix=/tmp/a && make && make install
## ビルド待ち…、うしっなんか出来たっぽい!


## んー何々…?
# /tmp/a/bin/extundelete 
No action specified; implying --superblock.

Usage: /tmp/a/bin/extundelete [options] [--] device-file
Options:
  --version, -[vV]       Print version and exit successfully.
  --help,                Print this help and exit successfully.
  --superblock           Print contents of superblock in addition to the rest.
                         If no action is specified then this option is implied.
  --journal              Show content of journal.
  --after dtime          Only process entries deleted on or after 'dtime'.
  --before dtime         Only process entries deleted before 'dtime'.
Actions:
  --inode ino            Show info on inode 'ino'.
  --block blk            Show info on block 'blk'.
  --restore-inode ino[,ino,...]
                         Restore the file(s) with known inode number 'ino'.
                         The restored files are created in ./RESTORED_FILES
                         with their inode number as extension (ie, file.12345).
  --restore-file 'path'  Will restore file 'path'. 'path' is relative to root
                         of the partition and does not start with a '/' (it
                         must be one of the paths returned by --dump-names).
                         The restored file is created in the current
                         directory as 'RECOVERED_FILES/path'.
  --restore-files 'path' Will restore files which are listed in the file 'path'.
                         Each filename should be in the same format as an option
                         to --restore-file, and there should be one per line.
  --restore-all          Attempts to restore everything.
  -j journal             Reads an external journal from the named file.
  -b blocknumber         Uses the backup superblock at blocknumber when opening
                         the file system.
  -B blocksize           Uses blocksize as the block size when opening the file
                         system.  The number should be the number of bytes.
Error parsing command-line options.


## ふむ、どうやらパーティション&時間指定で復活できるっぽいな?
## dtime って何だろ…、helpだと分からんかったのでサイトのマニュアル読む…
## エポック秒で指定すればいいんだな。
## 取ってて良かった時間メモ、18:15ってことは18:00以降くらいでいいだろ。
# date -d "18:00"
2011年  1月 23日 日曜日 18:00:00 JST
## うむ、じゃエポックは…、と
# date -d "18:00" +%s
1295773200


## うし、じゃこんな感じかな?
# /tmp/a/bin/extundelete --after 1295773200 --restore-all /dev/sdb5
Only show and process deleted entries if they are deleted on or after 1295773200 and before 2147483647.

WARNING: Extended attributes are not restored.
Loading filesystem metadata ... 9607 groups loaded.
Loading journal descriptors ... 28902 descriptors loaded.
Writing output to directory RECOVERED_FILES/
Searching for recoverable inodes in directory / ... 
327 recoverable inodes found.
Looking through the directory structure for deleted files ... 

Linuxでうっかりrm -rfしちゃったけど復活出来たよー\(^o^)/ - y-kawazの日記

うっかり消してしまった直後に復活させられるかもしれない方法です。
くれぐれもアプリを入れる場所には気をつけて下さい。
上書きしてしまうかもしれないので。
とりあえず/dev/shmが無難ではないでしょうか。


1年前 | | 2011年 1月 25日 | このエントリーを含むはてなブックマーク