<?xml version="1.0" encoding="Shift_JIS"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>Netsket小柴恵子のブログ</title>
   <link rel="alternate" type="text/html" href="http://blog.netsket.com/koshiba/" />
   <link rel="self" type="application/atom+xml" href="http://blog.netsket.com/koshiba/atom.xml" />
   <id>tag:blog.netsket.com,2010:/koshiba//3</id>
   <updated>2010-07-01T09:02:18Z</updated>
   <subtitle>日々思っていること、良く使うLinuxコマンド、その他忘れたくない事など…</subtitle>
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.31-ja</generator>

<entry>
   <title>EC2でインスタンスを作るならRoot Device Typeはinstance-storeで！</title>
   <link rel="alternate" type="text/html" href="http://blog.netsket.com/koshiba/2010/07/ec2root_device_typeinstancesto.php" />
   <id>tag:blog.netsket.com,2010:/koshiba//3.740</id>
   
   <published>2010-07-01T08:19:02Z</published>
   <updated>2010-07-01T09:02:18Z</updated>
   
   <summary>EBSのio性能の低さを実感したkosibaです。 その速度差に愕然… 弊社のH...</summary>
   <author>
      <name></name>
      
   </author>
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.netsket.com/koshiba/">
      EBSのio性能の低さを実感したkosibaです。
その速度差に愕然…
弊社のHDD使用サーバともかけ離れすぎてます。

では、衝撃の結果発表！(笑




      <![CDATA[<table border="1">
	<tr style="text-align:center;">
		<td>OS</td><td>デバイス</td><td>タイプ</td><td>パーティション</td><td>read/sec</td>
	</tr>
	<tr>
		<td rowspan="3">FedoraCore 8</td><td>/dev/sda1</td><td>ebs</td><td>/</td><td>50MB/sec</td>
	</tr>
	<tr>
		<td>/dev/sdf</td><td>ebs</td><td>EBSマウント</td><td>48MB/sec</td>
	</tr>
	<tr>
		<td>/dev/sda1</td><td>instance-store</td><td>/</td><td>277MB/sec</td>
	</tr>
	<tr>
		<td>CentOS4</td><td>/dev/sda1</td><td>HDD</td><td>/</td><td>72MB/sec</td>
	</tr>
</table>





なお、測定方法はLinuxの「hdparm」コマンドを使用しました。
参考サイト：<a href="http://plaza18.mbn.or.jp/~moriban/linux/HardDiskPerformance.html">http://plaza18.mbn.or.jp/~moriban/linux/HardDiskPerformance.html</a>






これはもう、instance-storeを読み書きさせるしかないですね。
EC2で速度向上を期待して、数日中にサーバの移行作業を行います。
移行結果は後ほどお知らせしたいと思います。お楽しみに！]]>
   </content>
</entry>
<entry>
   <title>Client.InvalidManifest: Invalid block device mapping: Invalid virtual name &apos;ebs2&apos; </title>
   <link rel="alternate" type="text/html" href="http://blog.netsket.com/koshiba/2010/06/clientinvalidmanifest_invalid.php" />
   <id>tag:blog.netsket.com,2010:/koshiba//3.739</id>
   
   <published>2010-06-30T06:28:18Z</published>
   <updated>2010-06-30T06:39:01Z</updated>
   
   <summary>EC2でインスタンスのAMIを作成し、登録しようとした時のエラー。 探した時に日...</summary>
   <author>
      <name></name>
      
   </author>
   
   <category term="196" label="AMI" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="193" label="ec2" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="194" label="error" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://blog.netsket.com/koshiba/">
      EC2でインスタンスのAMIを作成し、登録しようとした時のエラー。
探した時に日本語情報が無かったので忘備録。

作成したmanifest.xmlを見てみると、確かにebs2がボリュームとしてマッピングされている。

      <![CDATA[&lt;block_device_mapping&gt;
    &lt;mapping&gt;
        &lt;virtual&gt;ami&lt; /virtual&gt;
        &lt;device&gt;/dev/sda1&lt; /device&gt;
    &lt;/mapping&gt;
    &lt;mapping&gt;
        &lt;virtual&gt;root&lt; /virtual&gt;
        &lt;device&gt;/dev/sda1&lt; /device&gt;
    &lt;/mapping&gt;
    &lt;mapping&gt;
        &lt;virtual&gt;swap&lt; /virtual&gt;
        &lt;device&gt;/dev/sda3&lt; /device&gt;
    &lt;/mapping&gt;
    &lt;mapping&gt;
        &lt;virtual&gt;ebs2&lt; /virtual&gt;
        &lt;device&gt;/dev/sdf&lt; /device&gt;
    &lt;/mapping&gt;
&lt;/block_device_mapping&gt;




ちなみに、EBSをattachしていないインスタンスでAMIを作成するとmanifest.xmlは以下のようになる。
&lt;block_device_mapping&gt;
    &lt;mapping&gt;
        &lt;virtual&gt;ami&lt; /virtual&gt;
        &lt;device&gt;/dev/sda1&lt; /device&gt;
    &lt;/mapping&gt;
    &lt;mapping&gt;
        &lt;virtual&gt;root&lt; /virtual&gt;
        &lt;device&gt;/dev/sda1&lt; /device&gt;
    &lt;/mapping&gt;
    &lt;mapping&gt;
        &lt;virtual&gt;swap&lt; /virtual&gt;
        &lt;device&gt;/dev/sda3&lt; /device&gt;
    &lt;/mapping&gt;
&lt;/block_device_mapping&gt;




だったら、この状態をAMI作成時に「--block-device-mapping」で指定してあげよう。

--block-device-mapping "ami=/dev/sda1,root=/dev/sda1,swap=/dev/sda3"

もしくは 

 -B "ami=/dev/sda1,root=/dev/sda1,swap=/dev/sda3"



ふう。ちゃんと登録されました。
]]>
   </content>
</entry>
<entry>
   <title>NagiosでソフトウェアRAIDの監視</title>
   <link rel="alternate" type="text/html" href="http://blog.netsket.com/koshiba/2010/03/nagiosraid.php" />
   <id>tag:blog.netsket.com,2010:/koshiba//3.726</id>
   
   <published>2010-03-11T08:00:01Z</published>
   <updated>2010-06-08T05:02:24Z</updated>
   
   <summary> CentOSを使っていると、「mdadm」を使ってソフトウェアRAIDを組む事...</summary>
   <author>
      <name></name>
      
   </author>
   
   <category term="183" label="Nagios" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="190" label="RAID" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="188" label="centos" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="186" label="check_linux_raid.pl" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="187" label="mdadm" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="184" label="nrpe" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://blog.netsket.com/koshiba/">
      <![CDATA[<a href="http://2bu.netsket.net/j/1884/http://blog.netsket.com/koshiba/2010/03/nagiosraid.php" target="_blank" style="text-decoration:none;border:none;padding:0px;margine:0px;"><img src="http://2bu.netsket.net/tw" alt="Twitter「つぶやく」ボタン" style="border:none;padding:0px;margine:0px;" /></a><a href="http://2bu.netsket.net/d/1884" title="Twitterの「つぶやき」を見る" target="_blank" style="text-decoration:none;border:none;padding:0px;margine:0px;"><img src="http://2bu.netsket.net/i/http://blog.netsket.com/koshiba/" alt="" style="border:none;padding:0px;margine:0px;" /></a>

CentOSを使っていると、「mdadm」を使ってソフトウェアRAIDを組む事があると思います。
「mdadm」はHDDの故障等でRAIDが外れた時、設定されたアドレスに対してメールを送りますが、
これだけでは正直気付きにくいし、担当者入れ替えによるアドレス変更も面倒…
HDD残量の監視をNagiosで行っているという事もあり、NagiosでRAIDも監視できたらなぁと思っていました。


そして、見つけました！！！
それが【check_linux_raid.pl】


#普通に知ってるよ。だいぶ前からあるでしょ。というツッコミはスルーで。]]>
      ◆格納場所
yumでインストールした場合は以下のパスにインストールされています。
/Nagiosプラグインがインストールされてるディレクトリ/contrib/check_linux_raid.pl

ex) CentOS5系64bitの場合
	/usr/lib64/nagios/plugins/contrib/check_linux_raid.pl


ソースからインストールした場合はインストールされていないようです。
別途プラグインのインストールをしてください。
私はyumでインストールされたものをコピーして使いました。




◆使い方
# /usr/lib64/nagios/plugins/contrib/check_linux_raid.pl

上記のコマンドで現在設定されている全てのステータスが表示されます。
デバイス別に見たいという場合は、最後に「md0」等を付けてください。

NRPEで別サーバからステータスを取得したい時はnrpe.cfgにコマンドを登録するだけです。




◆実行エラー
また、単にインストールしただけではエラーが出て実行出来ない場合もあります。
その時は、「check_linux_raid.pl」を開いて、以下のように修正してください。

use lib utils.pm;
↓
use lib &quot;/usr/lib64/nagios/plugins/&quot;




◆使用感
まだ設定したばかりなのでどうとも言えませんが、監視状況はバッチリです。


   </content>
</entry>
<entry>
   <title>便利なコマンド「nohup」</title>
   <link rel="alternate" type="text/html" href="http://blog.netsket.com/koshiba/2009/09/nohup.php" />
   <id>tag:blog.netsket.com,2009:/koshiba//3.689</id>
   
   <published>2009-09-08T06:23:02Z</published>
   <updated>2010-05-26T02:09:39Z</updated>
   
   <summary>Linuxのコマンドを実行する時、バックグラウンドでも実行する事ができますよね。...</summary>
   <author>
      <name></name>
      
   </author>
   
   <category term="121" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="180" label="nohup" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="18" label="コマンド" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="182" label="バックグラウンド" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://blog.netsket.com/koshiba/">
      Linuxのコマンドを実行する時、バックグラウンドでも実行する事ができますよね。
sshから接続して、ちょっと長めの処理を実行する時などに便利なバックグラウンド。
でも、sshのセッションが切れたりログアウトしたりすると、バックグラウンドの処理も停止してしまいます。

そこで、処理が完了するまで停止させないようにするのが「nohup」コマンドです。

      使い方は簡単。
ex)$ nohup sh test.sh &amp;


頭に「nohup」を付けて通常通りにコマンドを入力します。
最後にはバックグラウンドで実行されるように「＆」を忘れずに。


実行中に出力されたデータは、コマンドを実行したユーザのディレクトリにファイルが作成されて保存されます。
通常のコマンドと同じように、ログの保存先も指定できますよ。

   </content>
</entry>
<entry>
   <title>cronだけで時刻合わせする際の注意点</title>
   <link rel="alternate" type="text/html" href="http://blog.netsket.com/koshiba/2009/07/cron.php" />
   <id>tag:blog.netsket.com,2009:/koshiba//3.686</id>
   
   <published>2009-07-31T07:14:20Z</published>
   <updated>2010-05-26T02:10:06Z</updated>
   
   <summary>以前の投稿で、cronだけで時刻合わせを行う方法をご紹介しました。 しかし！それ...</summary>
   <author>
      <name></name>
      
   </author>
   
   <category term="121" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="124" label="NTP" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="179" label="clock" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="114" label="cron" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="3" label="date" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://blog.netsket.com/koshiba/">
      <![CDATA[<a href="http://blog.netsket.com/koshiba/2009/04/ntp_1.php">以前の投稿</a>で、cronだけで時刻合わせを行う方法をご紹介しました。
しかし！それだけでは十分でない事が判明しました…

<strong>
■システム時刻とハード時刻が違う</strong>
Linuxには、システム時刻とハード時刻という2つの時間があります。
dateコマンドで見れるのはシステム時刻、
clockコマンドで見れるのはハード時刻です。


以前cronに登録したコマンドで使っているのは「date」の一種です。
ハード時刻を合わせていないので、放っておくとハード時刻がズレてしまいます。
ズレていると時刻指定して実行させたいcronが、こちらの想定通りに動作してくれないという困った事態が発生します。

]]>
      <![CDATA[<strong>■システム時刻 => ハード時刻</strong>
正した時刻をズレている時刻に同期させましょう。

# clock --systohc

このコマンドもcronに登録しておくといいでしょう。


面倒だな、ズレるのは困る、という場合はNTPで時刻同期をしましょう。
こちらは自動的にハード時刻も合わせてくれます。
接続可能状態ならば、常に同期を試みるので大幅にズレる事はありません。


CentOSでは、clockコマンドのヘルプを日本語で見る事が出来ました。
今回紹介したのはほんの少しですので、出来ればヘルプを見てみてください！]]>
   </content>
</entry>
<entry>
   <title>SQLのBETWEEN</title>
   <link rel="alternate" type="text/html" href="http://blog.netsket.com/koshiba/2009/07/sqlbetween.php" />
   <id>tag:blog.netsket.com,2009:/koshiba//3.680</id>
   
   <published>2009-07-10T06:33:16Z</published>
   <updated>2010-05-25T07:55:48Z</updated>
   
   <summary>たまに使う時、どこまで含まれるか記憶に自身が持てなくなるBETWEEN。 初心者...</summary>
   <author>
      <name></name>
      
   </author>
   
   <category term="172" label="BETWEEN" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="170" label="SQL" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://blog.netsket.com/koshiba/">
      <![CDATA[たまに使う時、どこまで含まれるか記憶に自身が持てなくなるBETWEEN。
初心者にはよくある事です。



ex)	SELECT * FROM <table_name> WHERE <column> BETWEEN <start> AND <end>

例) <column>の値が<start>から<end>までのものを抽出。



で、疑問点は<end>が含まれるのか？という事。
答えは「含まれる」。


そこで、分かりやすいように「AND」を不等号で表すとこうなる。
	・数学風 … 「≦」
	・プログラム風 … 「<=」




例えば、2009年7月10日午前7時中に登録されたデータが欲しい時は以下の通り。

ex) SELECT * FROM <table_name> WHERE <date> BETWEEN '2009-07-10 07:00:00' AND '2009-07-10 07:59:59'


ここでうっかり'2009-07-10 08:00:00'としてしまうと、0分0秒に登録されたデータも抽出されてしまうのでご注意！


]]>
      
   </content>
</entry>
<entry>
   <title>myisampackはスレーブにも適応されるのか？</title>
   <link rel="alternate" type="text/html" href="http://blog.netsket.com/koshiba/2009/06/myisampack.php" />
   <id>tag:blog.netsket.com,2009:/koshiba//3.674</id>
   
   <published>2009-06-04T07:29:04Z</published>
   <updated>2010-05-25T07:56:17Z</updated>
   
   <summary>簡単な実験してみました。 まぁ、普通に考えれば結果が出そうですが、目で確かめたか...</summary>
   <author>
      <name></name>
      
   </author>
   
   <category term="141" label="MySQL" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="167" label="レプリケーション" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="168" label="圧縮" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://blog.netsket.com/koshiba/">
      簡単な実験してみました。
まぁ、普通に考えれば結果が出そうですが、目で確かめたかったので。


MySQLのストレージエンジンである『MyISAM』は、テーブルを読み込み専用として圧縮する事ができます。
また、圧縮する事によりデータのサイズが小さくなるので容量をとりません。


圧縮に使うのは、
・テーブルのデータファイル
・データファイルを圧縮する「myisampack」コマンド
・圧縮後にIndexを再構築する「myisamchk」
・テーブルの開放を行う「flush table」です。


それでは、レプリケーションが完成しているMySQLサーバで実行してみましょう。
      <![CDATA[実行するのは、データのコピー元であるマスターです。
1作業ずつマスターの状態とスレーブの状態を確認していきます。



ごにょごにょ……




結果が出ました！

実験の結果、<strong>マスターで実行した圧縮は、スレーブには適応されません</strong>でした。


なぜなら、レプリケーションは実行されたSQL文をスレーブサーバでも実行するからです。
今回の手順で実行したSQL文は、テーブルを開放する「flush table」だけでした。

また、「myisampack」と「myisamchk」はMySQLのコンソールから出て、直接データファイルを指定して実行しています。
同じデータファイルを使用する訳ではないレプリケーションでは、この操作は反映されないのです。




ということで、MySQLでMyISAMの圧縮を行う可能性がある場合は、
・レプリケーション先でも圧縮を行う
・圧縮後にとったdumpファイルを使ってリストアした後も圧縮を行う
事が必要です。



もっとも、「myisampack」を使って圧縮したデータはSELECTしか出来ないので、ログ等のデータでありレプリケーションする必要がないかもしれませんね。]]>
   </content>
</entry>
<entry>
   <title>MySQLでいままでに遭遇したエラー</title>
   <link rel="alternate" type="text/html" href="http://blog.netsket.com/koshiba/2009/06/mysql.php" />
   <id>tag:blog.netsket.com,2009:/koshiba//3.673</id>
   
   <published>2009-06-02T08:34:23Z</published>
   <updated>2009-06-02T08:36:23Z</updated>
   
   <summary>最近MySQLを使い始めた小柴です。 とある時期に、MySQL入りのサーバを作ら...</summary>
   <author>
      <name></name>
      
   </author>
   
   <category term="121" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="141" label="MySQL" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="165" label="エラー" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://blog.netsket.com/koshiba/">
      <![CDATA[最近MySQLを使い始めた小柴です。
とある時期に、MySQL入りのサーバを作らなくてはいけなくなった時に遭遇したエラーを紹介します。


今回の現象は、新しいサーバにMySQLを入れた後に発生しました。
なお、インストールの方法はHDDの丸ごとコピーです。


実はこのエラー、対処法がいくつか存在しています。
削除作業を行うこの方法の前に、削除しなくてもいい対処法を試してください。
<a href="http://d.hatena.ne.jp/tomoyamkung/20081225/1230165109">
参考サイト</a>]]>
      


■エラーその1

# service mysql start
Starting MySQL... Manager of pid-file quit without updating [失敗]





■エラーその2

# service mysql status
MySQL is not running, but lock exists                      [失敗]





■解決方法
MySQLのデータファイル格納場所にある、「ib_logfile0,ib_logfile1,ib_logfile2」を削除します。
# rm -rf /usr/local/var/ib_logfile*


同じく、「ibdata1」を削除します。
# rm -rf /usr/local/var/ibdata1


PID格納場所にある、mysqlのPIDファイルを削除します。
# rm -rf /var/lock/subsys/mysql 




この後MySQLを起動させ、エラーなく起動ができました！


※データの保証は出来ません。自己責任でお願いします。
※ディレクトリは使用環境に合わせてください。
※削除が怖い場合は、移動でも大丈夫です。






あと、上記にある参考サイトや他のサイトを参考に対処した時、設定に対する説明をよく読んでいなかったが為に別のエラーが発生しました。


■エラーその3

ERROR 1030 (HY000): Got error -1 storage engine




■解決方法

my.cnfで以下の設定をコメントアウトして再起動をします。
	innodb_force_recovery=4


この解決方法は英語のサイトにヒントがありました。
母国語以外もきちんと読まないとね。
その前に、設定にたいする説明を良く読む事が大事か。


   </content>
</entry>
<entry>
   <title>Windows Media Player11とDRMとストリーミング</title>
   <link rel="alternate" type="text/html" href="http://blog.netsket.com/koshiba/2009/05/windows_media_player11drm.php" />
   <id>tag:blog.netsket.com,2009:/koshiba//3.668</id>
   
   <published>2009-05-28T07:41:03Z</published>
   <updated>2009-06-02T07:58:28Z</updated>
   
   <summary>こんにちは。NetsketのLinux使い、小柴です。 今日はプライベートであっ...</summary>
   <author>
      <name></name>
      
   </author>
   
   <category term="159" label="DRM" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="157" label="WindowsMediaPlayer11" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="163" label="アニメ" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="161" label="ストリーミング" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://blog.netsket.com/koshiba/">
      こんにちは。NetsketのLinux使い、小柴です。
今日はプライベートであった妙な現象についてお話したいと思います。


GW頃、とあるアニメが見たくなり動画を探していました。
すると、「てれあにしあたー(テレビ東京)」というサイトで見れると公式サイトにあったので早速見る準備。


Windows Media Player11のアップデートとセキュリティーのアップデートが完了し、
ライセンスの発行が終わればOk♪



ライセンスの発行で見事に躓きましたよ。

      動画（ストリーミング）ではよくある現象だったようで、エラー内容をGoogle先生に聞いてみると色々出てきました！
しかーし、どれをやってみても結果は変わらず…



WMPの再インストールをしてみても、DRMディレクトリの中身を空にしてみても……
エラーが直りませんでした　orz
だーからWindowsって嫌いなんだよぉ。なんて脅しながらやっても駄目でした。


気分転換に別のアニメ提供サイト「バンダイチャンネル」で他の動画を見ていたら、
あれ？見たいのあった！これなら見れるじゃん。


という事で、諦めました！

バンダイチャンネルで見れるならそれでいいや。
入り口は1つじゃない。別の方向から入る事だって出来るのさ。
と、開き直ってますｗ



ちなみに見たかったのは「とらドラ！」
アニメが終了したから見たくなったのです。
まだDVDが全てレンタルショップに揃ってなくて、しかも全話購入の方が安かった。
週末のお供にちょうど良いｗ
   </content>
</entry>
<entry>
   <title>MySQLのInnoDBを使う前に</title>
   <link rel="alternate" type="text/html" href="http://blog.netsket.com/koshiba/2009/04/mysqlinnodb.php" />
   <id>tag:blog.netsket.com,2009:/koshiba//3.633</id>
   
   <published>2009-04-17T07:47:49Z</published>
   <updated>2009-04-17T07:48:56Z</updated>
   
   <summary>MySQLにはいくつかストレートエンジンがありますが、 トランザクションが使用出...</summary>
   <author>
      <name></name>
      
   </author>
   
   <category term="121" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="141" label="MySQL" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://blog.netsket.com/koshiba/">
      MySQLにはいくつかストレートエンジンがありますが、
トランザクションが使用出来るInnoDBを使う前にやっておいた方が良い作業があります。
これをせずに「CREATE DATABASE...」してしまうと、後で後悔するかも…
（経験者談）

      <![CDATA[<br />
<br />
まず、MySQLの設定ファイルを開きます。
<br />
	# vi my.cnf
<br />
<br />
<br />
開いたら、以下のように修正します。
<br />
	[mysqld]
	innodb_file_per_table
<br />
<br />
<br />
修正が完了したら再起動しましょう。
<br />
	# service mysql restart
<br />
<br />
<br />
これで準備ok。
<br />
<br />
<br />
さて、なぜこの設定をするかです。
<br />
MySQLというのは、ファイルでデータベースやテーブルの情報を管理します。
MySQLのデフォルトエンジンであるMyISAMはすべてテーブルごとにデータファイルを作成し管理します。
<br />
しかし、InnoDBはテーブル個別のファイルと、全InnoDB共通で使用するデータファイル「ibdata1」があります。
この共通ファイルが厄介なのです！
<br />
なぜなら、肥大化する一方でテーブルを削除しようが、デフラグメント化しようが、絶対に縮小する事がないのです。
困ったものです。
<br />
<br />
でも、嘆く事はありません。
4.1以降のバージョンならば、テーブル単位でデータファイルを持たせる事が可能になりました。
その設定が、先ほどの「innodb_file_per_table」です。
<br />
ただし！「CREATE DATABASE...」する前であれば、です。
してしまった後だったら…？
<br />
<br />
大丈夫。方法は1つだけあります。
「ibdata1 縮小」でググるといくつか方法が出てきますが、大きくなり過ぎたibdata1を小さくするには以下の方法が有効だそうです。
<br />
<br />
・DBをdumpする
・ibdata1、他ib*が付くファイルを削除(or リネーム)
・DROP DATABASE...
・MySQLを再起動
・CREATE DATABASE...
・dumpデータをリストア
<br />
<br />
今後、この手順を実行する予定ではありますが、まだ試していませんので自己責任でお願いします。
]]>
   </content>
</entry>
<entry>
   <title>HDDの温度測定(シリアルATA)</title>
   <link rel="alternate" type="text/html" href="http://blog.netsket.com/koshiba/2009/04/hddata.php" />
   <id>tag:blog.netsket.com,2009:/koshiba//3.632</id>
   
   <published>2009-04-16T09:13:42Z</published>
   <updated>2009-04-16T09:15:08Z</updated>
   
   <summary>桜が散ってまだ間もないこの頃。 夏日が観測される事が増えてきました。早すぎ… そ...</summary>
   <author>
      <name></name>
      
   </author>
   
   <category term="139" label="HDD" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="121" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://blog.netsket.com/koshiba/">
      <![CDATA[桜が散ってまだ間もないこの頃。
夏日が観測される事が増えてきました。早すぎ…
<br />
<br />
そんな4月中旬ですが、サーバのファン音が一層大きくなって心配になったので、温度を測定してみました。
<br />
<br />
コマンドはこちら。
]]>
      <![CDATA[<br />
# smartctl -a -d ata /dev/sda | grep Temp
<br />
※ちなみに、シリアルATA以外では、「-d ata」を取れば測定出来るはずです。
<br />
<br />
<br />
<br />
サーバ密集地で測ってみたのですが、上下の間隔が
<br />
狭い配置で　sdaの平均が37℃、　sdbの平均が39.5℃
広い配置で　sdaの平均が32℃、　sdbの平均が39℃
<br />
でした。
サーバは全てDellのT105です。
<br />
<br />
<br />
ファン音とはあまり関係ないようですね。
あるとしたらラックの高さかな？
ラックの一番上の段にあるサーバのファン音が異様に大きいだけなのか…
]]>
   </content>
</entry>
<entry>
   <title>内部NTPを使って時刻合わせ</title>
   <link rel="alternate" type="text/html" href="http://blog.netsket.com/koshiba/2009/04/ntp_1.php" />
   <id>tag:blog.netsket.com,2009:/koshiba//3.619</id>
   
   <published>2009-04-02T06:00:00Z</published>
   <updated>2009-04-16T09:16:23Z</updated>
   
   <summary>前回は、外部にあるNTP公開サーバへ接続し 時刻合わせをする方法をご紹介しました...</summary>
   <author>
      <name></name>
      
   </author>
   
   <category term="121" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="124" label="NTP" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="122" label="時刻" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="125" label="内部" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://blog.netsket.com/koshiba/">
      <![CDATA[前回は、外部にあるNTP公開サーバへ接続し
時刻合わせをする方法をご紹介しました。
<br />
今回は、同じネットワーク内から前回設定したサーバに接続して時刻合わせを行います。
<br />
OSは前回と同じくCentOS5.2です。
ネットワークは192.168.0.0/24とします。
前回設定したサーバをserver1とし、内部参照を行うサーバをserver2とします。
<br />
<br />
<br />
]]>
      <![CDATA[■まず、server1にログインしましょう。
<br />
■NTPサーバとして時刻を提供できるように、ポートを開放します。
<br />
iptablesの設定ファイルがある位置に移動します。
<br />
	# cd /etc/sysconfig/
<br />
<br />
iptablesの設定ファイルを開きます。
<br />
	#vi iptables
<br />
<br />
既に記述されている行を使って行の追加を行います。
<br />
ポート123番の行にカーソルを合わせ、
[y][y][p]とキーボードを叩きます。
<br />
123番の下に同じ行がコピーされます。
あとは、「tcp」を「udp」にするだけです。
<br />
上書き保存をしてファイルを閉じましょう。
<br />
<br />
<br />
■修正したiptablesの設定を反映させます。
<br />
	# service iptables restart
<br />
<br />
<br />
■NTPの設定ファイルを修正します。
同じネットワークからの接続を許可する設定を追加します。
<br />
NTPの設定ファイルがある位置まで移動します。
<br />
	# cd /etc/
<br />
<br />
設定ファイルを開きます。
<br />
	# vi ntp.conf
<br />
<br />
次のように修正します。
<br />
	restrict 127.0.0.1 
	restrict 192.168.0.0 mask 255.255.255.0　<strong><==追加</strong>
	server ntp.nict.jp
	server 127.0.0.1
<br />
<br />
上書き保存をして閉じましょう。
<br />
<br />
<br />
■NTPの設定ファイルを反映させます。
設定ファイルの修正が終了したので、新しい設定を反映させましょう。
<br />
	# service ntp restart
<br />
<br />
==============================
ここからは、server2で作業をします。
<br />
■NTPサーバから時刻を取得できるように、ポートを開放します。
iptablesの設定ファイルがある位置に移動します。
<br />
	# cd /etc/sysconfig/
<br />
<br />
iptablesの設定ファイルを開きます。
<br />
	#vi iptables
<br />
<br />
iptablesの設定ファイルに次の行を追加します。
お好きな追加方法でどうぞ。
<br />
	-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 123 -j ACCEPT
<br />
<br />
上書き保存をして閉じます。
<br />
<br />
<br />
■修正したiptablesの設定を反映させます。
<br />
	# service iptables restart
<br />
<br />
<br />
■NTPを使って内部サーバに接続します。
NTPの設定ファイルにて接続するサーバを指定します。
この方法を使わずに、cronだけの実行でも問題ありません。
<br />
NTPの設定ファイルがある位置まで移動します。
<br />
	# cd /etc/
<br />
<br />
設定ファイルを開きます。
<br />
	# vi ntp.conf
<br />
<br />
「restrict 127.0.0.1」が始めの方に記述されていると思います。
その次の行に次を付け足します。
<br />
	server [server1のIPアドレス]
	server 127.0.0.1
<br />
<br />
それよりも下にあり、自分自身以外で有効になっている行があれば、コメントアウトします。
自分自身＝127.xxx.xxx.xxx
<br />
<br />
以上で設定終了です。
上書き保存をして閉じましょう。
<br />
<br />
<br />
■NTPの設定ファイルを反映させます。
設定ファイルの修正が終了したので、新しい設定を反映させましょう。
<br />
	# service ntp restart
<br />
<br />
<br />
■設定通りに接続されているか確認します。
設定反映後、しばらく時間を置かないと確認できませんが、
きちんと設定通りに接続しているか確認しましょう。
<br />
	# ntpq -p
<br />
<br />
<br />
■cronで時刻合わせを実行します。
NTPを止めて、cronによる時刻合わせも可能です。
また、NTPで起動させる場合でも、いざという時の為にcronにも登録しておきましょう。
<br />
crontabを開きます。
<br />
	# crontab -e
<br />
<br />
次の行を追加します。
この行では、毎日6時0分と18時0分にserver1の時刻を取得し、自サーバの時刻にします。
<br />
	0 6,18 * * * /usr/sbin/ntpdate -s -b [server1のIP]
<br />
<br />
上書き保存をして閉じましょう。
<br />
<br />
crontabにきちんと設定できたか確認します。
<br />
	# crontab -l
<br />
<br />
設定した行が表示されればOKです。
この設定は、NTPが起動していない時に有効です。
NTPが起動している時は、常に時刻同期を行っていますので、ズレが発生する事はありません。
<br />
<br />
<br />
■cronだけで時刻合わせをする時は…
cronだけで時刻合わせをする場合、<strong>NTPが動いているとコマンドが実行されません。</strong>
なので、NTPを止めてしまいましょう。
<br />
	# service ntp stop
<br />
<br />
このままでは、自動起動プログラムによって、サーバが起動した際にNTPが動いてしまう可能性があります。
自動起動しないように設定を変えましょう。
<br />
	# chkconfig ntp off
<br />
<br />
確認も忘れずに。
<br />
	#chkconfig --list ntp
<br />
<br />
<br />
以上で、内部NTPによる時刻あわせの設定は終了です。
お疲れ様でした。
<br />]]>
   </content>
</entry>
<entry>
   <title>NTPで時刻合わせ</title>
   <link rel="alternate" type="text/html" href="http://blog.netsket.com/koshiba/2009/04/ntp.php" />
   <id>tag:blog.netsket.com,2009:/koshiba//3.618</id>
   
   <published>2009-04-01T06:17:46Z</published>
   <updated>2009-04-01T06:58:25Z</updated>
   
   <summary>Linuxを使っていると、時刻にズレが無く稼動していますが、 1年経つとちょっと...</summary>
   <author>
      <name></name>
      
   </author>
   
   <category term="121" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="124" label="NTP" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="122" label="時刻" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="ja" xml:base="http://blog.netsket.com/koshiba/">
      Linuxを使っていると、時刻にズレが無く稼動していますが、
1年経つとちょっとずつズレが出てきます。

今回は、そんなズレを解消する方法をご紹介します。

OSですが、CentOS5.2を使用しました。
CentOS以外ではyumがない場合もありますので、
OSに合ったインストールをしてください。



      ■まず、サーバにログインしましょう。

■サーバにNTPがインストールされているか確認します。

	# rpm -qa | grep ntp
	ntp-4.2.2p1-8.el5.centos.1


NTPがありました。
ここで、NTPが見つからなかった場合は、yumを使ってインストールしてください。

	# yum install ntp



■NTPサーバから時刻を取得できるように、ポートを開放します。
NTPで使用するポート番号は123番です。

iptablesの設定ファイルがある位置に移動します。

	# cd /etc/sysconfig/


iptablesの設定ファイルを開きます。

	#vi iptables


iptablesの設定ファイルに次の行を追加します。
キーボードから[i]を入力し、編集モードになってから操作します。

	-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 123 -j ACCEPT


ここで、この1行をコピーして貼り付けてもいいのですが、
既に記述されている行を使って行の追加を行うと簡単です。

iptablesのポート記述部分が以下のように書かれているとします。


	-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
	-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
	-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
	-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
	-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT


一番最後の行、ポート110番の行にカーソルを合わせ、
[y][y][p]とキーボードを叩きます。

すると、110番の下に同じ行がコピーされます。
あとは、「110」を「123」にするだけです。


[Esc][:][w][q]で上書き保存をしてファイルを閉じましょう。



■修正したiptablesの設定を反映させます。
修正しただけでは、ポート123番が開放されませんので、次のコマンドを実行しましょう。

	# service iptables restart



■NTP公開サーバを探します。
NTP公開サーバをブラウザで探します。
Google先生にお願いすると幸せになれるでしょう。

今回は、日本標準時プロジェクト[http://jjy.nict.go.jp/]にしました。
なるべく、サーバ設置場所から近い公開サーバを複数リストアップしておきましょう。



■NTPの設定ファイルを修正します。
NTPの設定ファイルがある位置まで移動します。

	# cd /etc/


設定ファイルを開きます。

	# vi ntp.conf


「restrict 127.0.0.1」が始めの方に記述されていると思います。
その次の行に次を付け足します。

	server ntp.nict.jp
	server 127.0.0.1


それよりも下にあり、自分自身以外で有効になっている行があれば、コメントアウトします。
自分自身＝127.xxx.xxx.xxx


以上で設定終了です。
上書き保存をして閉じましょう。



■NTPの設定ファイルを反映させます。
設定ファイルの修正が終了したので、新しい設定を反映させましょう。

	# service ntp restart



■設定通りに接続されているか確認します。
設定反映後、しばらく時間を置かないと確認できませんが、
きちんと設定通りに接続しているか確認しましょう。

	# ntpq -p
	     remote           refid      st t when poll reach   delay   offset  jitter
	==============================================================================
	*ntp-b2.nict.go. .NICT.           1 u  867 1024  377   11.887   -2.330   1.011
	 host-name       .STEP.          16 l    - 1024    0    0.000    0.000   0.000
	 LOCAL(0)        .LOCL.          10 l   25   64  377    0.000    0.000   0.001


「remote」が接続先です。
接続先の前に付いている「*」が現在最も有効な接続先です。
複数指定した場合は、2番目に有効な接続先に「+」が付きます。



■もしもの時の為の準備です。
気付いたらNTPが起動していなかった！という時の為に、cronにも登録しておきましょう。

crontabを開きます。

	# crontab -e


次の行を追加します。
この行では、毎日6時0分と18時0分に「ntp.nict.jp」サーバの時刻を取得し、自サーバの時刻にします。

	0 6,18 * * * /usr/sbin/ntpdate -s -b ntp.nict.jp


上書き保存をして閉じましょう。


crontabにきちんと設定できたか確認します。

	# crontab -l


設定した行が表示されればOKです。
この設定は、NTPが起動していない時に有効です。
NTPが起動している時は、常に時刻同期を行っていますので、ズレが発生する事はありません。



以上で、NTPによる時刻あわせの設定は終了です。
お疲れ様でした。

次回は、内部NTPサーバの設定をご紹介したいと思います。

   </content>
</entry>
<entry>
   <title>RAIDから故障デバイスを外す</title>
   <link rel="alternate" type="text/html" href="http://blog.netsket.com/koshiba/2008/10/raid.php" />
   <id>tag:blog.netsket.com,2008:/koshiba//3.451</id>
   
   <published>2008-10-16T05:20:05Z</published>
   <updated>2008-10-16T05:45:09Z</updated>
   
   <summary>最近、ばたばたとHDDが故障し、もはやRAIDでは無くなる事が多いので。 そして...</summary>
   <author>
      <name></name>
      
   </author>
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.netsket.com/koshiba/">
      <![CDATA[最近、ばたばたとHDDが故障し、もはやRAIDでは無くなる事が多いので。
そして、毎回デバイスを外すコマンドを探している自分がいるので orz



まず、現在のRAID構成状況を確認します。


# cat /proc/mdstat 
=====================================
Personalities : [raid1] 
md1 : active raid1 sdb1[1] sda1[0]
      104320 blocks [2/2] [UU]
      
md0 : active raid1 sdb3[1] sda3[0]
      155091392 blocks [2/2] [UU]
      
unused devices: <none>
=====================================
上記は正常な構成の例です。
ちなみに、RAID1のミラーリングです。



# cat /proc/mdstat 
=====================================
Personalities : [raid1] 
md1 : active raid1 sdb1[2](F) sda1[0]
      104320 blocks [2/1] [U_]
      
md0 : active raid1 sdb3[2](F) sda3[0]
      155091392 blocks [2/1] [U_]
      
unused devices: <none>
=====================================
こちらは、HDD(sdb)が1台故障している例です。
デバイスの隣に(F)があり、[U_]と片方が欠落していますね。



故障してしまった場合、自然治癒力はありませんので、
影響が出る前にRAIDから外します。

# mdadm --manage /dev/md0 --remove /dev/sdb3
=====================================
mdadm: hot removed /dev/sdb3
=====================================


# mdadm --manage /dev/md1 --remove /dev/sdb1
=====================================
mdadm: hot removed /dev/sdb1
=====================================



エラーが出なかったら確認してみましょう。

# cat /proc/mdstat 
=====================================
Personalities : [raid1] 
md1 : active raid1 sda1[0]
      104320 blocks [2/1] [U_]
      
md0 : active raid1 sda3[0]
      155091392 blocks [2/1] [U_]
      
unused devices: <none>
=====================================
1台だけで構成されてます。
このままでは危険ですので、早急にHDD交換をしましょう。



この後の流れは、

1.シャットダウン
2.故障したHDDの取り外し
3.新しいHDDを取り付け
4.起動
5.RAIDに追加
6.grubのコピー

で復活です。


※注意※
今回はCentOS4系での例です。
コマンドはOSによって無い場合があります。

]]>
      
   </content>
</entry>
<entry>
   <title>年末の大掃除のついでにいかがですか？</title>
   <link rel="alternate" type="text/html" href="http://blog.netsket.com/koshiba/2007/12/post_6.php" />
   <id>tag:blog.netsket.com,2007:/koshiba//3.426</id>
   
   <published>2007-12-18T06:43:29Z</published>
   <updated>2007-12-18T06:44:06Z</updated>
   
   <summary>気づけば師走の今日この頃… 皆様どうお過ごしでしょうか？ さて、最近私が気になる...</summary>
   <author>
      <name></name>
      
   </author>
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.netsket.com/koshiba/">
      気づけば師走の今日この頃…
皆様どうお過ごしでしょうか？


さて、最近私が気になるのは道に落ちている「ゴミ」。


カラスがゴミ捨て場で食い散らかした「ゴミ」なのか

何処かから飛ばされてきた「ゴミ」なのか

人間が意図的に、無意識にぽいっとした「ゴミ」なのか…


多いですね〜
前阿部首相が掲げていた「美しい国　日本」とはこの日本なのでしょうか？


科学技術の進歩の中で、減ることを知らないように増え続ける「ゴミ」は、今やどの道を歩いてもあるのではないでしょうか？

タバコの吸殻
タバコの空
お菓子の袋
飲料水の空
…etc

これらは、私が毎日通る道に必ず落ちているものです。
つまり、人間が意図的に、無意識にぽいっとした「ゴミ」です。

これらを捨てる人に聞きたいのですが、貴方はどうして今手に持っているものを落として行くのですか？

ゴミと一緒に居たくないから？
ゴミをいつまでも持っていたくないから？
邪魔だから？
自分の車や鞄の中を汚したくないから？

矛盾してませんか？

ゴミと一緒に居たくないのなら、いつも通る道や生活に欠かせない公共の場にどうして捨てるのですか？
ゴミをいつまでも持っていたくないのなら、ゴミ箱の近くで食べればいいのでは？
邪魔とか言いつつ、貴方はいつもそこを使うわけですよね？通行の邪魔にはならないのですか？
自分の車や鞄が汚れるのは嫌で、自分が通行する道が汚れるのは良いのですか？

道と考えずに、自分の部屋と考えてください。
自分の部屋に、誰かが火のついたタバコを投げ入れたらムカつきますよね？
自分の部屋に、「いらないから」と言ってゴミを捨てられるのは嫌ですよね？

誰かが片付けてくれるものだと思っていませんか？自然に還るなんて思っていませんか？
自分の手でしたことに責任を持ちましょうよ。学生でも、社会人でも、未就学生でも、誰にでも出来る事です。

今まで「ぽい」っとしていた人、これからは人だけではなく環境にも気を配ってみては？
      
   </content>
</entry>

</feed>
