「自宅サーバ」カテゴリーアーカイブ

BAY TRAIL-Dにしてからの電気代

3台体制だった自宅サーバーをPentium J2900で作成した1台のサーバーに集約して一ヶ月が経ちました。

compare.phg

3,000円超の削減が実現できています。

2年あれば元が取れる計算です。電気代以外にもCentOS5が2台とWindowsXPでの運用が、Windows8.1ProとそのHyper-V上でのCentOS7という最新の構成に更新できたというセキュリティ上のメリットもあります。

仮想マシン接続

さて無事に Pentium J2900 に Client Hyper-V が設定できたところで「Hyper-V 仮想マシン接続」を起動します。

hyper-v-1

するとなにやら許可がないだとか…

hyper-v-2

…読み込み中にエラーだとか言われます。

検索すると「管理者権限をつけて実行する」という解決法がでてきますが、いちいち昇格のダイアログボックスが表示されるのは気持ちよくありません。そういう時はユーザーに「Hyper-V Administrator」グループのメンバーになってもらいましょう。

まずは「ローカル ユーザーとグループ」スナップイン(Lusrmgr.msc)を開きます。

hyper-v-3

目的のユーザーをダブルクリックし、「所属するグループ」タブを選択します。
下のキャプチャはすでに「Hyper-V Administrator」グループを追加済みですが、ここで「追加(D)…」ボタンをクリックします。

hyper-v-4

すると以下のような「グループの追加」ダイアログボックスが表示されます。
このキャプチャもすでにオブジェクト名が入力されていますが、[Hyper-V Administrator」を探すには「詳細設定(A)…」ボタンを
クリックします。

hyper-v-5

「グループの選択」ダイアログボックスが表示されたらそのまま「検索(N)」をクリックします。検索結果にHyper-V Administratorsが表示されますので、選択して「OK」をクリックします。

hyper-v-5b

ここまでの作業を行ったら一旦ログオフ・ログオンを行いましょう。
これで「Hyper-V 仮想マシン接続」を起動すれば管理者への昇格なしに目的の仮想マシンに接続することができるようになりました。

hyper-v-6

Bay Trail-D (J2900) でClient Hyper-V

どこかのブログの記事に Pentium J2900 はClient Hyper-V を使えないと書いてあったけど、どうも実際のところは使えるようですね。(Celeron J1900でも Client Hyper-V が動作したという記事も見かけました)

古い自宅サーバー2台をリプレースするために ASRock Q2900-ITX を買って試してみました。

hyper-v

VMwareのディスクアクセス

すっかりバイクブログになってしまったこのブログですが、たまには他のネタも。

というのもここのところサーバーレスポンスが悪い状態が続いていたのですが、やっと解決したからです。このブログのサーバーはVMware上で走らせていますが、どうもVMwareの設定が原因だったようです。

以下のサイトにあるようにVMwareで仮想メモリを使わないようにするだけで解決しました。

http://www.drk7.jp/MT/archives/001215.html

しかし、もう4年も前の記事です…。

メモ

会社でサブドメインを作ってサーバーを一つ追加することになったのだけど、vncの設定をするのを忘れたので家から作業する際にはターミナルからになってしまいました。最近はみんなGUIで設定できるのでコマンドをすぐに忘れてしまいます。

というわけで家からファイアウォール設定を変えなければいけなくなった時のコマンド。

iptables -I INPUT 順番 -m state –state NEW -p tcp –dport ポート番号 -j ACCEPT

で保存するのが

service iptables save

でした。iptablesのヘルプを見ながらで何とかなるもんです。

ftpは外には公開しないけど、ssh越しではアクセスするのでその設定も。SELinuxの設定を変えないとホームディレクトリさえ見られない。

setsebool -P ftp_home_dir 1

ウェブサイトのデータをアップロードする人もいるので

setsebool -P allow_ftpd_full_access 1

を設定しないとダメでした。これは

getsebool -a | grep ftp

とやってそれらしいのを見つけて設定したけど合ってるのかな?

……というかまず最初にyum install vnc-serverすればいいだけですね。

サーバーの更新

随分と長い間サーバーの更新をサボっていたら、「依存関係のエラー」が出てアップデートできないじゃないですか。どうも過去の更新でトランザクションが全部終わっていなくて古いモジュールが残っているからみたいです。

# yum-complete-transaction

…で解決するようだけど、何故自動で実行されないのかな?

再インストールしないでマザーボードの交換

再インストールしないでマザーボードを交換するときに、ブルースクリーンで0x0000007B エラーが出る場合、「Windows XP のシステム ディスクを他のコンピューターに移動した後に STOP 0x0000007B エラーが表示される」でも対応できない場合があります。

そもそもなぜこんなエラーが出るかというと、旧環境と新環境で大容量記憶域コントローラーのドライバが異なるため新環境のドライバがないのが原因です。

じゃあどうすれば良いかというと、「インターフェースカードを買って、旧環境と新環境の両方で使えば良い」のではないでしょうか。

1.まず旧マザーボードにSATAやRAIDのインターフェースカードを取り付けて起動。(HDDはインターフェースカードには取り付けない)
2.インターフェースカードのドライバをインストール後シャットダウン。
3.新マザーボードに入れ替え、インターフェースカードにHDDを取り付けて起動。
4.新環境のドライバをインストール後シャットダウン。
5.インターフェースカードを使い続けたくなければHDDをマザーボードに繋ぎかえる。

2~4000円くらい掛かるのさえ気にしなければ簡単な方法です。

dovecot: error while loading shared libraries: libsepol.so.1: failed to map segment from shared object: Cannot allocate memory

login_process_per_connection を使ってなく、dovecot でタイトルのようなエラーが出てメール受信できなくなった場合には、次の手順で復旧できます。

#vi /etc/dovecot.conf

login_process_size と書いてある行をさがし、そのサイズを 64 にします。

login_process_size=64

保存したら dovecot の再起動。

#service dovecot restart

なんでこんなことになるかというと、x86_64カーネルを使っている場合には、RHEL/CentOS の 5.1 にアップグレードすると “login_process_size=64” というパラメータが必要になるらしいです。確かに yum update でこうなりました。

ML115

7月の安売りの時に15,000円弱で買った HP ProLiant ML115 を使ってサーバの入れ替えを考えていたのですが、当初の目標とは裏腹な構成になりそうです。

最初は CentOS5 を入れて Xen で仮想化して使おうと思っていたけど、Xen はクライアントOSのインストールが面倒くさそうだし、Windows も入れられないのでVMware Server に変更です。
さらに「オンボードでRAID5が使えるな」と思っていたのに、RAID5は安全ではないという情報があちこちに書かれているので怖気づいてRAID1にすることにしました。
しかもオンボードの RAID ドライバは CentOS5 用がない(CentOS4用はある)のでソフトウェアRAIDです。

非常に残念な状態ですが、ホストOSがローカルのファイルサーバなどを担当し、VMware 上のゲストOSで Web, DNS, Mail サーバーなどを担当するという分担だけは何とか達成できそうです。それぞれにハードウェア的に別サーバを用意するよりかは環境に良いかと。

FreeTDS

RH9 と CentOS の2つのサーバを管理しているのですが、CentOS の方に FreeTDS を入れる必要があったのでメモ。

RH9 の方は過去に FreeTDS をインストール済みで、PHP からは sybase_ 関数でアクセス可能です。

CentOS では PHP のバージョンが 4.3.x なので mssql_ 関数が使えるようになってました。(RH9 は 4.2.x なので mssql_ 関数は使えません)

ここから RPM を落としてインストール。ただし freetds の 0.63 だと php-mssql のインストール時に libsybdb.so.4 がないと言われるので 0.62 を使用。(2008/5/13 yum install freetds でいけますね)

あとは /etc/freetds.conf を書き換えれば OK。

# 名称は任意
[接続先名称]
host = IPアドレス
port = 1433 # 標準のポート番号(インスタンスを使用してたらそのポート番号に)
tds version = 8.0 # SQL Server 2000 の場合
client charset = UTF-8 # エンコーディング

ちなみにインスタンスを使用している場合のポート番号の調べ方は、レジストリの以下の項目を参照。

HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\インスタンス名\MSSQLServer\SuperSocketNetLib\Tcp\TcpPort

そしてコマンドラインからは tsql というツールが使えます。パラメータは osql と一緒ですね。

# tsql -S 「freetds.conf で指定した接続先名称」 -U ユーザ名 -P パスワード