Fedora 10での認識

 現在使用中のカーネル(2.6.27.15-170.2.24.fc10.i686)では、カーネルモジュールath5kで自動的に認識される。lspci, dmsgの結果は以下の通り。AR5213A + RF5112Aの組み合わせのようだ。About/ath5kを参照するとRF5112Aは載っていないが、型番からしてRF5212のマイナーバージョンである可能性が高いので問題ないだろう。

  • # /sbin/lspci -vv
01:03.0 Ethernet controller: Atheros Communications Inc. Atheros AR5001X+ Wireless Network Adapter (rev 01)
	Subsystem: Wistron NeWeb Corp. CM9 Wireless a/b/g MiniPCI Adapter
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 168 (2500ns min, 7000ns max), Cache Line Size: 32 bytes
	Interrupt: pin A routed to IRQ 7
	Region 0: Memory at fcfd0000 (32-bit, non-prefetchable) [size=64K]
	Capabilities: [44] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=2 PME-
	Kernel driver in use: ath5k_pci
	Kernel modules: ath5k
# dmesg | grep ath5k
ath5k_pci 0000:01:03.0: PCI INT A -> Link[LNKB] -> GSI 7 (level, low) -> IRQ 7
ath5k_pci 0000:01:03.0: registered as 'phy0'
ath5k phy0: Atheros AR5213A chip found (MAC: 0x59, PHY: 0x43)
ath5k phy0: RF5112A multiband radio found (0x36)

カーネルモジュールath5kを再読込すると、自動的にwlan0が作成される。

# modprobe -r ath5k

# modprobe ath5k

# ifconfig 
#eth0,loの出力は省略

wlan0     Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:484 (484.0 b)  TX bytes:612 (612.0 b)

wmaster0  Link encap:UNSPEC  HWaddr XX:XX:XX:XX:XX:XX-YY-YY-00-00-00-00-00-00-00-00
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

# iwconfig wlan0
wlan0     IEEE 802.11abg  ESSID:""  
          Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated   
          Tx-Power=0 dBm   
          Retry min limit:7   RTS thr:off   Fragment thr=2352 B   
          Encryption key:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

airproxyサーバー構築

 以前からNFSサーバー上で利用していたのだが、ML115G5を導入したついでに、外部公開のサービスは別のサーバーに移行することにした。具体的にはSSHとairproxyを別サーバーで稼働させることにした。

 こういうわけで、数日前からVMware Server 2上で仮想マシンを作成し、CentOS 5.2のインストールを繰り返してきたのだが、本日、実機へのインストールを行った。なぜVMware Serverで仮想化しないのか、という質問がありそうだが、これには次のような理由がある。

(1) SSH或いはOpenVPNを利用してNFSサーバー上の資源にアクセスするにしても、それ程頻度は多くない。今までの経験から言っても、ファイルを同期していたことで自宅のファイルサーバー上のファイルが必要になることはあまりなかった。

(2) 上記の理由に加えて、airproxyの利用にはそれ程高速なCPUは必要ないため、ML115G5を常時稼働させる必要はない。

(3) ML115G5が発する音・熱及び消費電力の問題。もっとも自分は外出しているわけだからこれは真夏*1以外ではそれ程問題ではない。

 というわけで、物理的に別個のサーバーを構築することとなった。スペックは以下の通りである。*2

 CentOS 5.2をCDからブートし、ネットワーク(NFS)経由でインストールした。NFSを利用するためにiptables, /etc/exports , /etc/hosts.allow の設定を適宜変更し、あとはBASEのみをインストールした。BASEのみといっても必要ないパッケージがまだ含まれているので、F2キーでパッケージ一覧を表示させてチェックを外した。

 インストール完了後、useraddでユーザーを作成後、passwdでパスワードを設定し、sshで接続。その後、scpで用意しておいたスクリプト(このエントリの末尾に掲載のcentos52.sh)とairproxyのrpmを転送し、実行した。tcpwrapper, iptables, yum, 仮想コンソール, rootログインの禁止, logrotate, ssh, ipv6の無効化, ntp, airproxy, 不要サービスの無効化等の設定を行っている。今回はWillcom以外からのアクセスを遮断するために、WILLCOM|ウィルコムのセンター情報を基にiptablesを設定した。無線LANPHSよりも帯域が広い回線で使う場合には、ssh経由でairproxyに接続すれば良いであろう。

  • centos52.sh
#!/bin/sh

cat << EOF >>  /etc/hosts
192.168.0.x     hoge
192.168.0.y    foo
EOF

cat << EOF >> /etc/hosts.deny
ALL: ALL
EOF

cat << EOF >> /etc/hosts.allow
sshd: 192.168.0.x
EOF

cat << EOF > /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A INPUT -j LOG --log-prefix iptables:
-A INPUT -j DROP
-A FORWARD -j DROP
-A RH-Firewall-1-INPUT -p all -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#SMB
-A RH-Firewall-1-INPUT -p udp --dport 137:138 -d 192.168.0.255  -j ACCEPT
#ICMP ping
-A RH-Firewall-1-INPUT -s 192.168.0.x -p icmp --icmp-type 8 -j ACCEPT
#ssh
-A RH-Firewall-1-INPUT -s 192.168.0.x -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
#airproxy
-A RH-Firewall-1-INPUT -s 61.198.128.0/24 -p tcp --dport 8080 -m conntrack --ctstate NEW -j ACCEPT
# 以下同様のため省略
#local
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
COMMIT
EOF

cat << EOF > /etc/yum.repos.d/local-addons
http://ftp.riken.jp/Linux/centos/\$releasever/addons/\$basearch/
http://ftp.kddilabs.jp/Linux/distributions/centos/\$releasever/addons/\$basearch/
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/\$releasever/addons/\$basearch/
http://ftp.nara.wide.ad.jp/pub/Linux/centos/\$releasever/addons/\$basearch/
http://rsync.atworks.co.jp/centos/\$releasever/addons/\$basearch/
http://ftp.iij.ad.jp/pub/linux/centos/\$releasever/addons/\$basearch/
EOF

cat << EOF > /etc/yum.repos.d/local-base
http://ftp.riken.jp/Linux/centos/\$releasever/os/\$basearch/
http://ftp.kddilabs.jp/Linux/distributions/CentOS/\$releasever/os/\$basearch/
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/\$releasever/os/\$basearch/
http://ftp.nara.wide.ad.jp/pub/Linux/centos/\$releasever/os/\$basearch/
http://rsync.atworks.co.jp/centos/\$releasever/os/\$basearch/
http://ftp.iij.ad.jp/pub/linux/centos/\$releasever/os/\$basearch/
EOF

cat << EOF > /etc/yum.repos.d/local-extras
http://ftp.riken.jp/Linux/centos/\$releasever/extras/\$basearch/
http://ftp.kddilabs.jp/Linux/distributions/centos/\$releasever/extras/\$basearch/
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/\$releasever/extras/\$basearch/
http://ftp.nara.wide.ad.jp/pub/Linux/centos/\$releasever/extras/\$basearch/
http://rsync.atworks.co.jp/centos/\$releasever/extras/\$basearch/
http://ftp.iij.ad.jp/pub/linux/centos/\$releasever/extras/\$basearch/
EOF

cat << EOF > /etc/yum.repos.d/local-updates
http://ftp.riken.jp/Linux/centos/\$releasever/updates/\$basearch/
http://ftp.kddilabs.jp/Linux/distributions/centos/\$releasever/updates/\$basearch/
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/\$releasever/updates/\$basearch/
http://ftp.nara.wide.ad.jp/pub/Linux/centos/\$releasever/updates/\$basearch/
http://rsync.atworks.co.jp/centos/\$releasever/updates/\$basearch/
http://ftp.iij.ad.jp/pub/linux/centos/\$releasever/updates/\$basearch/
EOF

cp -p /etc/inittab /etc/inittab.orig
sed -e 's/3:2345/#3:2345/g' -e 's/4:2345/#4:2345/g' -e 's/5:2345/#5:2345/g' -e 's/6:2345/#6:2345/g' /etc/inittab.orig > /etc/inittab

cp -p /etc/securetty /etc/securetty.orig
sed -e 's/tty.*//g' /etc/securetty.orig > /etc/securetty

cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.orig
sed -e 's/#PermitRootLogin\ yes/PermitRootLogin\ no/g' -e 's/#RhostsRSAAuthentication/RhostsRSAAuthentication/g' -e 's/#PubkeyAuthentication/PubkeyAuthentication/g' -e 's/^PasswordAuthentication\ yes/PasswordAuthentication\ no/g' /etc/ssh/sshd_config.orig > /etc/ssh/sshd_config
echo "AllowUsers nobu" >> /etc/ssh/sshd_config

cp -p /etc/logrotate.conf /etc/logrotate.conf.orig
sed -e 's/^rotate\ 4/#rotate\ 4/g' -e 's/^#compress/compress/g' /etc/logrotate.conf.orig > /etc/logrotate.conf
echo "#keep 26 weeks (6 months)" >> /etc/logrotate.conf
echo "rotate 26" >> /etc/logrotate.conf

cat /etc/sysconfig/network | grep NETWORKING_IPV6

cat << EOF >> /etc/modprobe.conf
alias ipv6 off
alias net-pf-10 off
EOF

yum -y install ntp
cp -p /etc/ntp.conf /etc/ntp.conf.orig
sed -e 's/^restrict\ -6/#restrict\ -6/g' -e 's/^server/#server/g' -e 's/^fudge/#fudge/g' /etc/ntp.conf.orig > /etc/ntp.conf
echo "server hpml115" >> /etc/ntp.conf
chkconfig ntpd on
ntpdate foo

yum -y install libpng zlib giflib libjpeg
useradd -d /usr/share/airproxy -M -s /bin/bash airproxy
rpm -ivh jre-*-linux-i586.rpm
rpm -ivh airproxy-*-*.el5.centos.i686.rpm
chkconfig airproxy on

yum -y update

for i in $(echo "atd cups exim firstboot haldaemon ip6tables irqbalance jexec kudzu lvm2-monitor messagebus netfs nfslock pcscd portmap rpcgssd rpcidmapd sendmail "); do 
        chkconfig $i off 
done

 airproxyのrpmは以下のスペックファイルを用いて作成した。セキュリティーを考慮し、airproxy自体はユーザ名"airproxy"で動くようにしてある。大して効果がないことは分かっているが、一応Pentium3に最適化させている。そのため、Pentium3以外のi386の場合やx86_64の場合は%defineマクロで定義してある幾つかの箇所を書き換える必要がある。rpmsrpmはスペース的にもライセンス的にも面倒そうなので公開しない。Fedoraでもビルド出来るはずである。

# airproxy spec file for CentOS 5.2

%define srcFileName src20070401.zip
%define binFileName airproxy050.zip
%define apHostName hostname
%define apPort 8080
%define apWebPort 80
%define passwd hogehoge
%define libfastloadArch i386
#libfastloadArch amd64
%define javaDataModel 32
#%define javaDataModel 64
%define optOption -O3 -m32 -march=pentium3 -mtune=pentium3 -mmmx -msse
#optOption -O3 -m32 -march=pentium4 -mtune=pentium4 -mmmx -msse -msse2
#optOption -O3 -m64 -march=k8 -mtune=k8 -mmmx -msse -msse2 -m3dnow -fPIC

Summary: a proxy server
Name: airproxy
Version: 0.5.0
Release: 3.el5.centos
License: original
Group: Applications/Internet
URL: http://www.ne.jp/asahi/web/ryo/airproxy/
Source0: http://www.ne.jp/asahi/web/ryo/airproxy/download/%{srcFileName}
Source1: http://www.ne.jp/asahi/web/ryo/airproxy/download/%{binFileName}
Packager: Nobuyuki Ito <nobu.1026@gmail.com>
Requires: libpng
Requires: zlib
Requires: giflib
Requires: libjpeg
BuildRequires: jdk >= 1.5.0
BuildRequires: ant
BuildRequires: libpng-devel
BuildRequires: zlib-devel
BuildRequires: giflib-devel
BuildRequires: libjpeg-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

%description
airproxy is a proxy server

%prep

%setup -n airproxy -c
rm -rf *
mkdir -p src bin
unzip -d src $RPM_SOURCE_DIR/%{srcFileName}
unzip -d bin $RPM_SOURCE_DIR/%{binFileName}
cat << EOF > build.xml
<?xml version="1.0"?>
<project name="airproxy" default="airproxy" basedir=".">
	<target name="airproxy">
		<mkdir dir="classes" />
		<javac srcdir="src" destdir="classes" encoding="Shift_JIS" />
		<mkdir dir="classes/resources" />
		<copy todir="classes/resources">
			<fileset dir="src/resources"/>
		</copy>
		<mkdir dir="jars" />
		<jar jarfile="jars/airproxy.jar" update="yes" basedir="classes">
			<include name="airproxy/**"/>
			<include name="http/**"/>
			<include name="resources/**"/>
			<include name="plugins/**"/>
			<manifest><attribute name="Main-Class" value="airproxy.Main"/></manifest>
		</jar>
	</target>
	<target name="clean">
		<delete dir="classes" />
		<delete file="jars" />
	</target>
</project>
EOF
mv src/fastload/Makefile.linux src/fastload/Makefile.linux.orig
sed -e 's/OPT\ /OPT\ +/' -e 's/local\/java/java\/latest/g' -e 's/test\.exe//g' src/fastload/Makefile.linux.orig > src/fastload/Makefile.linux

%build
ant airproxy
cd src/fastload
OPT="%{optOption}" make -f Makefile.linux

%install
[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT

# install aiproxy.jar files
mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}
install jars/%{name}.jar $RPM_BUILD_ROOT%{_datadir}/%{name}

# install plugins
#mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/{impress,goo,google}
#install jars/plugins/*.jar $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins

# install libfastload.so
mkdir -p $RPM_BUILD_ROOT%{_prefix}/java/latest/lib/%{libfastloadArch}
install src/fastload/libfastload.so $RPM_BUILD_ROOT%{_prefix}/java/latest/lib/%{libfastloadArch}

# install filter.txt
install bin/filter.txt $RPM_BUILD_ROOT/%{_datadir}/%{name}

# install config files
mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/users
cat << EOF > $RPM_BUILD_ROOT%{_datadir}/%{name}/%{name}.properties
hostname = %{apHostName}
port = %{apPort}
web.port = %{apWebPort}

parent.hostname =
parent.port =
parent.username =
parent.password =

ddns.update.url =
ddns.update.interval =

cache.prefetch = on

log.access.filename = /var/log/airproxy.log
EOF

mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs
install bin/htdocs/index.html $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs

cat << EOF > $RPM_BUILD_ROOT%{_datadir}/%{name}/users/%{name}.properties
password = %{passwd}

image.quality.png = 75
image.quality.jpeg = 75
image.type = byLength
image.maxWidth = 480
image.maxHeight = 480
image.reductionRate = 100
image.maxDataSize = 4096

html.optimize = on
html.remove.filter = filter.txt

userAgent =
EOF

cat << EOF > $RPM_BUILD_ROOT%{_datadir}/%{name}/users/au.properties
password = %{passwd}

image.quality.png = 75
image.quality.jpeg = 75
image.type = byLength 
image.maxWidth = 480
image.maxHeight = 480
image.reductionRate = 100
image.maxDataSize = 4096

html.optimize = on
html.remove.filter = filter.txt

userAgent = KDDI-SH35 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0
EOF

cat << EOF > $RPM_BUILD_ROOT%{_datadir}/%{name}/users/docomo.properties
password = %{passwd}

image.quality.png = 75
image.quality.jpeg = 75
image.type = byLength
image.maxWidth = 480
image.maxHeight = 480
image.reductionRate = 100
image.maxDataSize = 4096

html.optimize = on
html.remove.filter = filter.txt

userAgent = DoCoMo/2.0 SH906i(c100;TB;W24H16)
EOF

cat << EOF > $RPM_BUILD_ROOT%{_datadir}/%{name}/users/pc.properties
password = %{passwd}

image.quality.png = 80
image.quality.jpeg = 80
image.type = byType
image.maxWidth = 1024
image.maxHeight = 768
image.reductionRate = 100
image.maxDataSize = 0

html.optimize = off
html.remove.filter =

userAgent =
EOF


# create log file
mkdir -p $RPM_BUILD_ROOT/var/log
touch $RPM_BUILD_ROOT/var/log/%{name}.log

# create logrotate config file
mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
cat << EOF > $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
/var/log/airproxy {
	missingok
	notifempty
	sharedscripts
	postrotate
		/bin/kill -HUP \`cat /var/run/airproxy.pid 2> /dev/null\` 2> /dev/null || true
	endscript
}
EOF

# create sysconfig file
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig
cat << EOF > $RPM_BUILD_ROOT/etc/sysconfig/%{name}
JAVA_HOME=/usr/java/latest
JAVA_ARGS="-server -d%{javaDataModel}"
AIRPROXY_HOME=/usr/share/airproxy
EOF

#create init script
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
cat << EOF > $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
#!/bin/bash
#
# airproxy	This shell script takes care of starting and stopping airproxy.

# chkconfig: 2345 90 10
# description: airproxy is a proxy server.

# Source function library.
. /etc/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

RETVAL=0
prog=airproxy
lockfile=/var/lock/subsys/\$prog
pidfile=/var/run/\$prog.pid

start() {
	# Check that networking is up.
	[ "\$NETWORKING" = "no" ] && exit 1

	[ -f /etc/sysconfig/airproxy ] || exit 6
	. /etc/sysconfig/airproxy

        # Start daemons.
        echo -n \$"Starting \$prog: "
	cd \$AIRPROXY_HOME
	su %{name} -c "\$JAVA_HOME/bin/java \$JAVA_ARGS -jar airproxy.jar &"
	RETVAL=\$?
	ps aux | egrep ^airproxy | awk {'print \$2'} > \$pidfile
	[ \$RETVAL -eq 0 ] && touch \$lockfile && success
	echo
	return \$RETVAL
}

stop() {
        echo -n \$"Shutting down \$prog: "
	kill -s SIGTERM \`cat \$pidfile\`
	RETVAL=\$?
        echo
	[ \$RETVAL -eq 0 ] && rm -f \$lockfile \$pidfile  && success
}

case "\$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  status)
	status \$prog
	;;
  restart|force-reload)
	stop
	start
	;;
  try-restart|condrestart)
	if [ -f \$lockfile ]; then
	    stop
	    start
	fi
	;;
  reload)
	exit 3
	;;
  *)
	echo \$"Usage: \$0 {start|stop|status|restart|try-restart|force-reload}"
	exit 2
esac
EOF

# create /usr/bin/airproxy.sh
mkdir -p $RPM_BUILD_ROOT%{_bindir}
cat << EOF > $RPM_BUILD_ROOT%{_bindir}/%{name}.sh
#!/bin/sh
JAVA_HOME=\$1
AIRPROXY_HOME=\$2
\$JAVA_HOME/bin/java -server -jar airproxy.jar -cp \$AIRPROXY_HOME &
EOF

%clean
[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT

%post
/sbin/chkconfig --add %{name}

%postun
/sbin/chkconfig --del %{name}

%files
%defattr(-, %{name}, %{name})
%attr(6555, %{name}, %{name}) %{_bindir}/%{name}.sh
%attr(444, %{name}, %{name}) %{_datadir}/%{name}/%{name}.jar
%attr(644, %{name}, %{name}) %config %{_datadir}/%{name}/%{name}.properties
%attr(644, %{name}, %{name}) %config %{_datadir}/%{name}/filter.txt
%attr(644, %{name}, %{name}) %config %{_datadir}/%{name}/users/*.properties
%attr(444, %{name}, %{name}) %{_datadir}/%{name}/htdocs/*
#%attr(444, %{name}, %{name}) %{_datadir}/%{name}/plugins
%attr(644, root, root)%config /etc/logrotate.d/%{name}
%attr(655, root, root) /etc/rc.d/init.d/%{name}
%attr(655, root, root) %config /etc/sysconfig/%{name}
%attr(555, %{name}, %{name}) %{_prefix}/java/latest/lib/%{libfastloadArch}/libfastload.so
%attr(600, %{name}, %{name}) /var/log/%{name}.log
%doc src/license.txt bin/readme.txt

%changelog
* Fri Feb 27 2009 Nobuyuki Ito <nobu.1026@gmail.com> - 0.5.0-3.el5.centos
- changed init script so that you can use 'chkconfig'

* Wed Feb 25 2009 Nobuyuki Ito <nobu.1026@gmail.com> - 0.5.0-2.el5.centos
- changed ownerships and permissions
- airproxy starts as a user, "airproxy"

* Sun Jan 11 2009 Nobuyuki Ito <nobu.1026@gmail.com> - 0.5.0-1
- initial build

*1:サーバーが設置されている部屋には冷房がない。

*2:以前デスクトップとして利用していたものを利用したので、スペックとしては10年近く前のものとなるだろう。

FastTrack TX2000GTでのRaid構築

 メインで使用しているデスクトップは、昨年購入したTranscend TS4GCFと44-20-C、PATA 2.5インチHDD変換で疑似SSD化していたが、この度サーバーの更新によりIDE接続のHDDが余ることから、昨年6月に2000円で購入していたPromise FastTrack TX2000GTと今までNFSサーバーで使用していたSeagate ST3320620A ** 2を使用してRaid1を構築することにした。といっても、カードとHDDを取り付けてFstTrackのBIOSから設定を行い、ミラーリングなのでディスクのコピーが終わるのをただひたすら待つだけであった。その後Fedora 10をDVDからインストールしたが、ドライバディスクを必要とすることもなく、あっさりと導入することが出来た。

 現在設定が終了したのだが、BMPxがリビルドしてもファイル再生時に落ちるとか、OperajEditATOKで日本語入力が出来ないということを除いては快適に使用している。前のエントリーの分も含め、設定手順は後日まとめたいと思う。

 なお、デスクトップの構成は最終的に以下のようになった。

hp ProLiant ML115 G5購入

 NTT-X Storeで11750円(送料無料・クレジットカード決済・4000円引きクーポン使用)で購入した。NFSサーバーの置き換えのためである。今まではIBM Intellistation M Pro 6849-34Jを使用していたのだが、i850チップセットであるがためにSATAが使用出来ない。*1 そこで、SATAの使える世代の新しい格安サーバーを購入することにしたのである。

 とりあえず、512MBのメモリと160GBのHDDでは話にならないので、2/7(土)に秋葉原に出掛けた。購入したものは以下の通り。

 ファールサーバーにしてはメモリ量が多すぎる感もあるが、下記のような構成になった。

 バイトがあったこともあって、作業はなかなか進まなかったが、NFS, Samba, NTPの各サービスの設定を終え、とりあえず使える状態になった。以前と比較して速度は当然不満があるはずもなく、快適に使用している。

*1:もちろん拡張カードの追加で使用することは可能だが、PCI 32bit/33MHzでは最近のHDDの性能に追いつかないし、PCIスロットに既にGiga-bit LANカードを差しているので、帯域の問題が生ずる。

米粉ドーナッツ(きなこ、チョコあられ)

nobu_10262009-01-10

 土曜日は普段はバイトを入れないのだが、研修のついでに2コマ入れておいたので、お昼はミスドに行ってみた。20%割引券をもらっているので、多少安く食べられるかと思ったのである。

 先日は米粉ドーナッツの黒ごましか試せなかったので、他の2種も試してみたのだが、3種類の中ではやはりきなこが一番おいしいように思う。きなこ飴のような雰囲気が漂っているのが素晴らしい。:-) 不満と言えば、値段の割にドーナツの大きさが小さめであるということである…。セールが終わってもなお買うかどうかは微妙なところだ。ただ、オールドファッション、ポンデリングばかりでは味気ないので、そういった意味では重要な役割を果たし得るのではないだろうか。