Ubuntu Server版をインストール後にやった4つのこと

2009 年 4 月 26 日 コメントはありません

Ubuntu Linux 9.04(Jaunty Jackalope) のサーバ版をインストールした直後にやっておくべき作業の4つを覚え書きとしてまとめておきます。

IPアドレスを固定に

サーバ用途でDHCPというのはありえないので、固定IPに設定します。/etc/network/intafacesをエディタで開いて、まずDHCPでIPが自動に割り振られないように下記をコメントアウト。

iface eth0 inet dhcp
          ↓
#iface eth0 inet dhcp

さらにstatic IPの設定をします。下記設定は私のネットワーク環境での設定なので、実際のIPアドレスなどはご自身のものに読み替えてください。

iface eth0 inet static               # インタフェース名 eth0 を設定
        address 192.168.1.2       # IPアドレス
        netmask 255.255.255.0    # ネットマスク
        network 192.168.1.0       # ネットワークアドレス
        broadcast 192.168.1.255  # ブロードキャストアドレス
        gateway 192.168.1.1      # ゲートウェイアドレス

終わったらネットワークインターフェースを再起動します。

$ sudo /etc/init.d/networking restart

パッケージのアップデート

リリース直後にディストリビューションを新しいバージョンにアップデートした場合を除いて、パッケージが多々更新されているのでアップデートしておきます。

$ sudo aptitude update

パスワードなしで sudo できるように

セキュリティ的には良くない設定ですが、sudo する際にパスワードを入力するのは面倒なので、特定のアカウントだけパスワードなしで sudo できるようにします。

$ sudo su - 
# export EDITOR=vi
# visudo

して

accountname       ALL=(ALL)       NOPASSWD: ALL

を追記します。accountnameのところは自分のものに読み替えてください。また、

%admin ALL=(ALL) ALL

となっているところはコメントアウトします。なお、デフォルトだとエディタがnanoになっているので、export EDITOR=vi して visudo した時に vi が立ち上がるようにしています。

不要なdaemonを止める

まず /etc/init.d/ 配下のdaemonの起動を制御する sysv-rc-conf というパッケージを入れておきます。

$ sudo apt-get install sysv-rc-conf

そして

$ sudo sysv-rc-conf

で起動して、不要そうな daemon で X の目印がついているところを SPACEキーで X を外します。私は以下のdaemonを止めました。

  • acpid: 電源やバッテリー関連のデーモンでサーバ用途には不要だと思われます
  • atd: atによってキューに入れられたジョブを実行します。必要ないので停止しましょう。
  • dns-clean: よくわかりませんが pppconfig パッケージに含まれているものなので、止めました。(ルータとしては使用しないため)
  • dovecot: popは利用しないので停止
  • pppd-dns: これもよくわかりませんがルーターとしては使用しないので止めました。
  • rsync: rsync daemonは不要なので止めました。

プロのための Linuxシステム構築・運用技術 (Software Design plus)

著者/訳者:中井 悦司

出版社:技術評論社( 2010-12-22 )

大型本 ( 264 ページ )


カテゴリー: Ubuntu タグ:

SSDのマシンにUbuntu 9.04 Serverをインストール

2009 年 4 月 26 日 コメントはありません

先週購入したSSDのマシンを組み立てました。SSDは2.5インチなので3.5インチ用のマウンタを買ったのですが、けっきょくネジをちゃんと締めれば必要なかったり、SATAのポートが2本しかないのにDVD-ROMがSATA接続だったり色々トラブルがあって5時間近くかかってしまいました。あと今回買ったShuttleのケースはなんとCPUファンじゃなくヒートシンクのみの構成でした。

CPUファンがなくてヒートシンクだけ

セットアップは無事完了したので、このマシンにUbuntu 9.04 Server版(amd64)をインストール。通常の7200RPMのHDDでhdparmした結果とSSDのマシンでhdparmした結果はこんな感じ。

### HDDのマシン
$ sudo hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads:  174 MB in  3.01 seconds =  57.84 MB/sec
### SSDのマシン
$ sudo hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads:  418 MB in  3.01 seconds = 138.86 MB/sec

すごい、2倍以上違う。さらにSSDはHDDより圧倒的に静かで軽いです。大きさも手のひらサイズでした。

SSDは手のひらサイズ

そして極めつけはUbuntuが起動するまでに約15秒しかかからないことでしょうか。え、もう起動したの?なんかバグってるんじゃない?っていうぐらい速かったです。今回購入したSSDはSilicon PowerのSP064GBSSD650S25で、いわゆる「プチフリ」するJMicronのJMF602のコントローラを積んでいるらしいのですが、プチフリ現象は今のところ起きてません。どのぐらい寿命が持つのかはわかりませんが、この速さは一度体感したら元には戻れない感じです。

プロのための Linuxシステム構築・運用技術 (Software Design plus)

著者/訳者:中井 悦司

出版社:技術評論社( 2010-12-22 )

大型本 ( 264 ページ )


カテゴリー: PC タグ:

「すべての「見える化」で会社は変わる」を読みました

2009 年 4 月 25 日 コメント 2 件

すべての「見える化」で会社は変わる―可視化経営システムづくりのステップ

著者/訳者:長尾 一洋

出版社:実務教育出版( 2008-02 )

単行本 ( 247 ページ )



会社経営に興味があるわけではないのですが、Amazonでやたら評価が高かったので気になって読みました。21世紀の会社経営について、どうしていけば良いのかを明確にしていてすごくわかりやすかったです。この本から学んだことを箇条書きにしてみます。

  • 現代の会社経営は市場や環境の変化が早いため非常に難易度が高い。
  • そのような状況で経営していくには、KPIなどを決め数値をモニタリングし、経営のコックピットを作ることが大切(見える化)。会社経営は飛行機の操縦以上に難しい
  • 「見えるようにすれば、気付く→気付けば動く→動けば変化する→変化を目に見えるようにする」というサイクルを作ることが重要(ちょっと違うけどPDCAみたいなもの)
  • やる気・モチベーションのような精神論だけでは駄目。社員に考えさせて行動させる。
  • 社員に考えさせるにはビジョンや戦略を共有することが大事。同じ価値観・問題意識を醸成させる→今流行りの「全員が経営者」
  • 先月の売り上げなどの結果を見ることは大事だが、先行管理の方が重要。見積もり→受注→売上というプロセスがあるが、売上までには時間がかかるので、売上だけを見ても遅い。見積もり→受注のプロセスを管理するべし。
  • 見える化することで社員に対して公正な評価を付けやすくなる→ただ、100%公正にはできないと思いますが…
  • 競合他社を真似ることで短期的には他社に追いつけるが、それでは新しいマーケットは作れない。
  • 現場で起こっていることを知るには「IT日報」が一番。また日報をただの報告ではなく「今日の結果を考えて明日どうするか」を考えさせるツールにするべき。

本の最後の方は「IT日報」をどう活用するか、という話が多い気がしましたが、この人はIT日報エバンジェリストみたいなので、ここは話半分で読みました。全体的には非常にポイントがわかりやすく、色々勉強になった本でした。

カテゴリー: タグ:

Athlon X2 5050e+メモリ4GB+SSD 64GBで5万円

2009 年 4 月 21 日 コメントはありません

このサイトがある自宅サーバが購入から3年を迎えたので、マシンの買い替えを検討。Pentium Dual-Core系でいくかAthlon X2でいくかで悩みましたが、省電力性と価格でAthlon X2 5050eで行くことに決めました。構成としては以下のスペックで、(64GBのSSDを買ったのに)なんと4万9000円に抑えられました。

先ほど全部ネットで注文して配達は今週末。さてどのぐらいのマシンパワーが出るのか非常に楽しみです。特にSSD化した時のMySQLの速度が気になります。

Now Loading...

Now Loading...

Now Loading...

Now Loading...

カテゴリー: PC タグ:

mysqldumpでバックアップをする時につけるオプション

2009 年 4 月 18 日 コメントはありません

MySQLのデータベースをバックアップする際にmysqldumpを使用しますが、個人的に「これはつけたらよさそう」と思っているオプションを紹介します。

–opt

–quick –add-drop-table –add-locks –extended-insert –lock-tables を指定するのと同じです。ダンプしたデータをMySQL サーバに読み込むための最速ダンプを提供します。(マニュアルそのまんま)

–single-transaction

ダンプする際に先頭にBEGINをつけるため、ダンプ時のデータのトランザクションの一貫性を保つことができます。ただしInnoDBなどのトランザクションが有効なストレージエンジンではないと意味がないです。

–flush-logs

ダンプを開始する前に、MySQL サーバ内のログファイルをフラッシュします。バイナリログを保存するような設定になっている場合はこれがフラッシュされます。ダンプしたデータとバイナリログを使用してデータを復元する場合に有用です。

–master-data

CHANGE MASTER TOコマンドをダンプの先頭に付加します。–master-data=2を指定するとCHANGE MASTER TOがコメントアウトされた状態になります。–maser-data=1と指定するとコメントアウトされずにダンプされます。

–default-character-set

ダンプする際の文字コードを指定します。

–hex-blob

バイナリ型のデータをエスケープ処理を行わずに実際に格納された値の16進表記でダンプします。 これを指定しないと default-character-set がSJIS系の場合エスケープ処理に失敗し、バイナリデータが壊れてしまう場合があります。

まとめ

自分はこんな感じでバックアップをとっています。

$ mysqldump -uroot -pxxxxxxxx --opt --flush-logs --single-transaction --master-data=2 --default-character-set=utf8 --hex-blob <database>

エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド

著者/訳者:奥野 幹也

出版社:技術評論社( 2010-06-12 )

大型本 ( 520 ページ )


カテゴリー: MySQL タグ:

WordPressの投稿にはてブのコメントを表示するプラグイン

2009 年 4 月 17 日 コメントはありません

このエントリのようにはてブのコメントをブログ内で展開するのってどんなプラグインなのだろう、と思って調べたらHatena bookmark anywhereというものでした。というわけで早速インストールしてみてこんな感じになりました。

カテゴリー: WordPress タグ:

Apacheでリバースプロキシ(mod_proxy)を活用する(3) – 負荷分散編

2009 年 4 月 12 日 コメントはありません

前回のApacheでリバースプロキシ(mod_proxy)を活用する(2) – 設定編ではフロントエンドのリバースプロキシとバックエンドのCGIサーバの設定を行ないました。今回は、サイトの負荷が大きくなってきた時にバックエンドのサーバを複数台にする設定を説明します。イメージ図としては下記のような感じです。

リバースプロキシでの負荷分散のイメージ

バックエンドの準備

まずは負荷分散が確認できるようにバックエンドのサーバを2台に増やします。前回作成した /etc/apache2/httpd_backend_8080.conf をコピーして /etc/apache2/httpd_backend_8081.conf を作成し、このhttpd_backend_8081.confがListenするポートを以下のように8080から8081にします。

--- httpd_backend_8080.conf     2009-04-07 00:32:55.000000000 +0900
+++ httpd_backend_8081.conf     2009-04-07 00:36:09.000000000 +0900
@@ -1,5 +1,5 @@
 #
-# /etc/apache2/httpd_backend_8080.conf
+# /etc/apache2/httpd_backend_8081.conf
 #
 User www-data
 Group www-data
@@ -12,15 +12,15 @@
 LoadModule mime_module /usr/lib/apache2/modules/mod_mime.so
 
 ServerRoot "/etc/apache2"
-Listen 8080
-ServerName localhost:8080
-PidFile /tmp/httpd_backend_8080.pid
+Listen 8081
+ServerName localhost:8081
+PidFile /tmp/httpd_backend_8081.pid
 ServerAdmin example_at_example.com
 DocumentRoot "/var/www/html"
 TypesConfig /etc/mime.types
 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
-ErrorLog /tmp/error_8080.log
-CustomLog /tmp/access_8080.log combined
+ErrorLog /tmp/error_8081.log
+CustomLog /tmp/access_8081.log combined
 UseCanonicalName Off
 AddHandler cgi-script .pl

ポートを変更したら、下記のコマンドでこの8081でListenするApacheを立ち上げておきます。

$ sudo /usr/sbin/apache2ctl -f /etc/apache2/httpd_backend_8081.conf -k start

8080のサーバも停止しているようであれば起動しておきましょう。

$ sudo /usr/sbin/apache2ctl -f /etc/apache2/httpd_backend_8080.conf -k start

リバースプロキシで負荷分散の設定

バックエンドのサーバを2台に増設したら、その2台にリクエストを振り分けられるようにフロントエンドのリバースプロキシを設定し直します。やり方は色々ありますが、まずは一番シンプルな「リクエストをランダムに2台に振り分ける」というやり方を試してみたいと思います。

前回の設定では

RewriteEngine on
RewriteRule ^/(.+)\.pl$ http://localhost:8080/index.pl [L,P,QSA]
RewriteRule ^/(.+)\.(gif)$ /var/www/html/$1.$2 [L,QSA]

というように、.plファイルへのアクセスを localhost:8080 に振り分ける設定でした。今回はこの部分を変更して、localhost:8080とlocalhost:8081に振り分けるように設定します。具体的には、前回のhttpd.confに対して

RewriteMap server rnd:/usr/local/httpd_proxy_2.2.11/conf/server.txt

という設定をRewriteRuleの前に追加し、RewriteRuleを下記のように変更します。

RewriteRule ^/(.+)\.pl$ http://localhost:8080/index.pl [P,QSA]
            ↓
RewriteRule ^/(.+)\.pl$ http://${server:backend}/index.pl [L,P,QSA]

つまり前回のhttpd.confの設定との差分は下記のようになります。

--- httpd.conf.entry246 2009-04-12 17:22:07.000000000 +0900
+++ httpd.conf  2009-04-12 17:29:49.000000000 +0900
@@ -421,6 +421,7 @@
 </Directory>
 
 RewriteEngine on
-RewriteRule ^/(.+)\.pl$ http://localhost:8080/index.pl [P,QSA]
+RewriteMap server rnd:/usr/local/httpd_proxy_2.2.11/conf/server.txt
+RewriteRule ^/(.+)\.pl$ http://${server:backend}/index.pl [L,P,QSA]
 RewriteRule ^/(.+)\.(gif)$ /var/www/html/$1.$2 [L,QSA]

httpd.confを書き換えたら、RewriteMapで指定した /usr/local/httpd_proxy_2.2.11/conf/server.txt というファイルを作成します。

# echo 'backend localhost:8080|localhost:8081' >  /usr/local/httpd_proxy_2.2.11/conf/server.txt

これらの設定は何を意味するかというと

RewriteRuleで指定したパターンにマッチするリクエストがあった場合、RewriteMapで定義したサーバのどれか1台にランダムでリクエストを転送する

ということです。RewriteMapというディレクティブでは /usr/local/httpd_proxy_2.2.11/conf/server.txt というファイルを指定して、そのファイルの中身は

backend localhost:8080|localhost:8081

となっています。ここで定義したバックエンドのサーバをその後ろのRewirteRuleで ${server:backend} として参照しているわけです。前回の設定では1台にしかリクエストを転送していませんでしたが、このような設定をすることで「どれか1台にランダムで」という形で負荷分散することが可能になります。

というわけで、設定が完了したら mod_proxyサーバを再起動します。

$ sudo /usr/local/httpd_proxy_2.2.11/bin/apachectl -k restart

動作確認

サーバが起動したらブラウザから http://example/index.pl に何回かアクセスしてみましょう。(exampleの部分は自身のホスト名に適宜変更してください)

/tmp/access_8080.logと/tmp/access_8081.log の両方に下記のようなログが残っているはずです。

127.0.0.1 - - [12/Apr/2009:17:46:35 +0900] "GET /index.pl HTTP/1.1" 200 129 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; ja-JP-mac; rv:1.9.0.8) Gecko/2009032608 Firefox/3.0.8"

これが確認できれば localhost:8080 と localhost:8081 の2台のバックエンドのサーバでの負荷分散環境が構築できたということになります。(なお、例によってそのままの設定だとセキュリティに問題があるので、作業が終了したら起動したApacheのプロセスは止めておくことをお奨めします)

まとめ

mod_proxyを使った負荷分散環境の構築は、バックエンドのサーバさえしっかり準備ができていればリバースプロキシの設定はかなり簡単だったのではないでしょうか。このような複数台のバックエンドのサーバにリクエストを振り分けるような設定は負荷分散としても有効ですが、その他の使い道として「バックエンドのサーバを1台メンテナンスで一時的に止めたい」というような時にサイトを止めることなくメンテナンスが可能になります。(具体的には、server.txtからメンテナンス対象のサーバを削除するだけでリクエストが転送されなくなります)

このように、リバースプロキシの用途は単純な負荷分散以外にもあるので、設定の仕方を知っておくだけでサイトの運用に非常に役立つと思います。

Apacheクックブック 第2版 ―Webサーバ管理者のためのレシピ集

著者/訳者:Ken Coar Rich Bowen

出版社:オライリージャパン( 2008-09-26 )

大型本 ( 308 ページ )


カテゴリー: Apache タグ: ,
Pages: << 1 2 3 ...12 13 14 15 16 ...23 24 25 >>