はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2017/02/18
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> 雑談掲示板

 サーバOS変更による運用、かなり苦戦
日時: 2011/09/18 10:28
名前: 管理者

本日で当サイトを運用し始めて、ちょうど7年になりました。
区切りが良いからサーバOSの変更をした訳ではありませんが、前からCentOSの次期バージョンがリリースされたらOS切り替えを行おうと思っておりました。

取り敢えず前準備として、VMwareにてCentOS6を構築し当サイトの動作検証を実施。

【事前段階で分かった事】
 1.システムロケールを「eucJP」にすると、X-Windowsログインでデスクトップが表示されない
   正確にはバックグラウンドが青いままで、タスクバーが表示されず何もできない。
   最初は何が原因か分からず、丸2日も費やしてしまいました。
   今後の事も踏まえて、「UTF-8」のほうが良いかも知れません。
   リモート接続で自ホームをlsした場合、デスクトップの文字(漢字)も化けてしまいますし・・・
 2.システムロケール変更による、Webコンテンツ文字化け
   静的なページはHTMLタグの「charset」を正しく行っていれば問題ありません。
   問題は動的なページ(掲示板など、外部データを記録し表示させるページ)です。
   以前の環境から移行するわけで、外部データはeucJPで記録されています。
   「charset」さえ合わせていれば問題ありませんが、システムコードと異なった形で記録されるのも
   個人的ですが、あまり気持ちの良いものではありません。
   スクリプト内のコード変換を「eucJP」から「UTF-8」に変換しスクリプト自体も「UTF-8」に
   総変換を行いました。(自作スクリプトや改造スクリプトがかなりの量があった為、大変でした)

上記2点を全て修正し、検証環境で動作確認を実施。
どうせならと、掲示板データをデータベース化しようと思い改造スクリプトを自作スクリプトに全修正。
(レイアウトはKENT-WEBさんと同じですが、スクリプトは全くの別物になっています。)
スクリプト内容は全てデータベース接続型になり処理速度の向上と検索系がパワーアップしました。


【実機へCentOS導入】
 一番、嵌りました・・・・・・
 まず、HDDは新品でない昔に利用していた物を流用。
 CentOSをインストールしている途中で、HDDレイアウトを作成しようとした所でエクセプション(例外エラー)
 デフォルトでインストールを試みてもエラー・・・・・
 挙句の果てには、ソースコードまで眺めていた次第ですし・・・・・
 原因が分かるまで、着きっきりで半日も費やしました。

 *原因
  1.流用していたHDDは、Linuxが入っていた。
  2.同様に使用していたHDDはRAIDメンバーのHDDであった。
    インストール時にRAID設定していた訳ではありません。
    昔に当HDDはRAIDされていた物であり、構築HDD内にRAID情報が記録されていた

 上記双方か、「2」のHDDであるとインストール時にエラーとなって導入できませんでした。
 もし、同様な事象であった場合、上記のHDDであるか確認してみると良いかも知れません。

 *対処
  該当HDDを論理または物理フォーマットします。
  他にPCがあればそのHDDを接続してフォーマットします。
  ない場合は、knoppix-Linuxなどでbootしてfdiskで消去など。
  RAIDメンバーであった場合は、特に注意してください。

 その他
  当方のミスですけどX-Windowを入れ忘れましたw
  寂しいので、GUIを選択して再インストールしました。

【実機へ各サービスの設定】
  まだまだ、続きますが後日にアップします。
  ≪お楽しみ(?)に~~~≫
メンテ

Page:  [1] [2] [3] [4]

■ コンテンツ関連情報

 サーバOS変更による運用、かなり苦戦(その2) ( No.1 )
日時: 2011/09/19 07:48
名前: 管理者

【実機へ各サービスの設定】
  インストール直後は当然の事ながらネームサービス(DNS)は設定されていない為、パッケージアップデートを
  行うには、外部のネームサーバに頼るしかありません。
  「resorv.conf」を修正(外部ネームサーバに変更)し、取り急ぎyum updateを実施。
  必要なサービスを全てインストールした後、検証機(上記のVMware)で予め各設定ファイルをバックアップ
  しているので全て実機へリストア。

  各サービスが正しく動作しているか確認を行う為、DNSから開始。
  クライアント(Windows)からDOSプロンプトでnslookupを実行してネームサーバを実機に設定。
  想定通り外部・内部とも正常に動作確認できた為、今後の設定はクライアントからリモート接続して設定を
  行いました。
  メール(postfix・dovecot)とDHCPサービスの動作検証を残して、全ての動作確認が取れたため再起動。

  ここから、悪夢がまた始まります・・・・・

  サーバのNICは2つあり完全稼動するまで同一セグメントです(eth0 192.168.1.5 / eth1 192.168.1.250)
  完全動作確認後、「http://kajuhome.com/my_network.shtml」の様にeth1を 192.168.2.0/24 系に
  変更する予定です。
  クライアント(Windows)が正しくIPアドレスを取得できているか?(サーバのDHCPサービスの確認のため)
  当然、問題なく取得できていました。

  DHCPはeth1から配布しプライマリDNSは192.168.1.250、セカンダリDNSは外部ネームサーバにしています。

  さて、クライアントからサーバの名前解決を実行!!!
           :
           :
           :
  きちんと名前解決し、IPアドレスが返って着ました・・・・・・・・・・・・・(グローバルアドレスが・・)


  よく見るとクライアントからnslookupした時にタイムアウトしてるではありませんか・・・
  DHCPするまでは問題なかったのに何故???
  クライアントで ipconfig /all で詳細を見ても特に問題はなさそうです。

  もう一度、nslookup
  んんん???

    C:UsersDevelop>nslookup
    サーバー:  不明
    Address:  192.168.1.250

  サーバー不明???、前はサーバ名が出ていたような??????
  もう一度、名前解決実施・・・解決せず。

  問い合わせサーバを 192.168.1.250 から 192.168.1.5 へ変更
  再度問い合わせ実施。正常応答!!!!


  パニックです。何故、eth0で問い合わせると問題ないのにeth1では応答してくれないの???
  bind 設定では当然全ての問い合わせを可能にしています。「allow-query     { any; };」

  DHCPよりプライマリDNSをeth0にしてクライアントを再起動したところ問題なし。
  この状態で、nslookup問い合わせ先をeth1にすると返却されない(タイムアウト)

  何か設定が必要なんでしょうかね・・・
  とりあえずは、早く稼動しなければならないし致命的でない為このままにしてあります。

  奮闘記はまだまだ続きますw
メンテ
 Re: サーバOS変更による運用、地道に解決しなくては・・ ( No.2 )
日時: 2011/09/20 16:39
名前: 管理者

> パニックです。何故、eth0で問い合わせると問題ないのにeth1では応答してくれないの???
> bind 設定では当然全ての問い合わせを可能にしています。「allow-query     { any; };」

前回投稿した上記の部分は以下で解決しました。

「/etc/named.conf」
listen-on port 53 { any; };

以前(Fedora)の時は、上記をコメントアウトする事によって全てのインタフェースで応答してく
れていたのですが、どのbindバージョンから変わったのか解りませんけど、明示的に記述する事
でlistenしてくれるようになりました。


さて、現段階の問題点は、相変わらず文字コードに悩まされています。
片っ端からシステムロケール(UTF-8)に合わせれば問題ないだろうと、jcodeのconvertを'utf8'に
したのが仇となりました。

元々の文字コードがUTF-8の場合、さらにUTF-8にしようとすると、ある条件下で文字化けを起こす
みたいです。
全角文字の前後に半角が入っていたり、記号などがあった場合などで文字化けします。
(必ず文字化けする訳ではないので、余計厄介なんですよね・・・)

そもそも、同じコードでコンバートする事が間違ってるんでしょうかね?
と言う事で、文字化けを起こすページがありましたら、是非教えて頂ければとても助かります。


あ!後もう一つ、jcode.plをやめてJcode.pmに変えました。
コンバート時にjcode.plがwarningを出力するんですよね・・・調べる時間が無いから、Jcode.PMに
変更する事でワーニングも吐かずに変換を行ってくれます。
メンテ
 課題、まだまだ続く・・・ ( No.3 )
日時: 2011/09/21 18:07
名前: 管理者

例えばフォームメールでHTMLタグの「charset」がUTF-8からの送信。
基本はメール自体が「jis」となる為、コンバートを行ってsendmailに投げます。

受信した内容は・・・一部文字化けします。
読めない事は無いけれど、性格が几帳面?なのかあまり良いものではありません。
(メール送信できているだけでも助かりますけどね。)

対象法は・・・・まだ見つかっていません。
メールヘッダに「Content-Type: text/plain; charset="UTF-8"」でも入れてしまおうか・・・
現在模索中です。

-----

【掲示板のデータベース化によるスレッド表示】
やってしまいましたw
掲示板のレス表示は5件ずつ表示しています。
単純に時系列に表示や、最新レスからの表示はとても簡単です。
この掲示板は最新が1ページ目で降順、最終ページが最初にレスされた順の降順となっている為、ある意味では不規則です。
これを計算式にすると、1つの方式ではできない事が最終的に分かりレス数が複数あるのに1件しか表示できなかったりして
閲覧者にはご迷惑をお掛けしました。

普段は仕事柄、複数の条件を事前に定義して検証を行っているのですが個人ページであるが故、手抜きをした為に問題が
発生してしまいました。(仕事通り行っていればある程度問題は抑えられたんですけどね。)
今現在で判っている事は、DBエラー時によるロールバックが組み込まれていません。
最悪は、「スレッド(親)があるのに、内容(レスも含む)が登録されない場合がある」という爆弾を抱えています。
ある程度は改修は頭の中に入っているので、プライオリティを上げて修正します。


さて次は・・・・・色々とあるな~(泣)
メンテ
 初歩的ミスをやってしまった・・・ ( No.4 )
日時: 2011/09/23 07:00
名前: 管理者

検証サーバでは以下のサービスを停止させています。
 ・postfix
 ・dovecot
 ・自作のグローバルIP変更時による外部DNS更新

検証サーバで掲示板の問題点を修正していました。
スレッド作成時や返信投稿時にはメールが飛びます。
色々なパターンで確認してある程度、改修が終わった頃にpostfixの設定を若干変更しようと
思い立ちました。(OS稼動時には送受信を優先させたい為、強化をわざと甘くしています)

ここまで書いたら、大体の事はピンと来ましたでしょうか?w

そうです、postfixの設定を修正しサービス開始をしたとたんに、メールキューに溜まっていた
数百近いメールが一気に配信!!!
(いつもだったら、メールキューを削除してからサービス起動するのに・・・・・)

気づいた頃にはメールキューは空になり既に配送済みでした。
携帯のメール受信が10分近く鳴りっ放し。
携帯のキャリア(自分の)にSPAM扱いされなければいいが・・・
幸いな事に被害を受けたのは自分の携帯メアドだけですけどね。

皆さんも外部発信するサービスにはくれぐれもご注意ください。


さて、掲示板の改修ですが大方完了してまいりました。
トランザクション処理も入れ、内部エラーが発生した場合はデバック用の外部ログに吐くように
して後日確認と修正ができる様にしました。
今抱えているのは、ありもしないページ要求などの対処です。
閲覧者には何もない罫線だけの表示となってしまいます。本来は「指定されたXXはありません」
と表示させるべきでしょうね。

地道に頑張ってまいります。
メンテ
 Re: サーバOS変更による運用、かなり苦戦 ( No.5 )
日時: 2011/09/26 18:34
名前: stranger
参照: http://ja.528p.com/

お世話になっています
私のところもCentOS 5.6 から CentOS 6.0 に入れ替えました
6.1を出すまえに cr repo を予定しているようです
ミラーサイトに空のcrディレクトリが作られています (20110926現在)

私のところはpentium3 x86マシンでXenを起動しています
CentOS6はdomain0で動かないので、試行錯誤に1ヶ月を要しました
最終的には XCPのkernelをソースから入れています

これまでに気づいたこと

rpmの仕様が変わっているので
CentOS5.6にCentOS6のyum関連パッケージがインストールできない
→ updateが簡単にできない 新規インストールが無難

CentOS5がインストールしてあるIDEにインストールする場合に
パーティションのカスタム設定を選ぶとハングする場合がある
一度デフォルトでインストールしてフォーマットを変える

nouveauフレームバッファがデフォルトで有効になっている
文字が小さくなってしまって見にくい場合もある
nouveauフレームバッファはinstall時も有効になっている
無効にするには kernelの起動オプションに nomodeset をつける

起動方法が改良された
inittabでの細かな起動設定はできない?
/étc/initディレクトリに設定がまとめられている

IDEのモデュールはサポートされない
kernelのmenuconfigの例
< > ATA/ATAPI/MFM/RLL support --->
IDEディスクへのインストールでは sdaとして認識される
IDE-CDROMもsdaとして認識される

/etc/fstab がUUID表記とlvm表記の混在になっている
複数のCentOSで/bootディレクトリを共有している場合は
UUID表記だと起動できない場合がでてきます
/dev/sda1 /boot のようにdev表記にしてしまう

modprobe.confがなくなって
modprobe.dディレクトリに設定ファイルを置く
例 ipv6の無効化
/étc/modprobe.d/dev-off.conf
install ipv6 /bin/true

crontabにjob(定時実行)の設定がない
デフォルトでは cron.dにcron.dailyのリンクがはってある
cronie-noanacronをインストールしてcronie-anacronを削除すれば
旧式に近くなるらしい

rsyslogが標準になった
ログ出力はデフォルトで旧式に設定されている
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

rogrotateのバックアップはデフォルトで日付が添付される
dateextパラメータが有効
数字添付にするには、個別の設定ファイルで nodateextパラメータを使う

パスワードのエンコードがSHA-512になっている($6$)

デフォルトのメールサーバがpostfixになった
mysqlをバインドしているようでlib-mysqlと依存関係にある
sendmailコマンドはsendmail.postfixへのリンクになっている

特権ユーザ UID<100 を追加する場合
最初にGIDの設定をする必要がある
UIDのみ指定すると自動的にGIDは500番以降に設定されてしまう
例 ntpユーザの追加
# groupadd -g 38 ntp
# useradd -u 38 -g 38 -d /dev/null -s /bin/false ntp

/usr/src/redhatは存在しない
~/rpmbuildに構築環境がつくられる
src.rpmパッケージをインストールすると自動で作成される

デフォルトではi386パッケージは作られない
-march=i686 -mtune=atomがデフォルトの作成オプションになっている

kernel*.rpmを追加する場合
kernel-firmware*.rpmを同時にインストールする必要がある
オリジナルソースからkernelをインストールした場合は
/lib/firmwareディレクトリが共有される

GUIでXenを使っている人には不幸であろう
CentOS6はゲストドメイン(domainU)としてだけインストールできる

glibcにbugがありnosegnegが機能しない 6.1のsrc.rpmからリビルドして対処

CentOS 6.0 の bridge-utilsは機能を満たしていない
メンテ

Page:  [1] [2] [3] [4]

題名
名前  ("初心者"を含む名前は使用できません)
E-Mail
URL
パスワード 記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント
画像添付 (対応画像:JPEG/GIF/PNG [Max 500KB])

   クッキー保存

■ その他


Copyright(©)2004-2017 First home server construction. All Right Reserved.