« 2011年11月 | トップページ | 2012年2月 »

2012年1月の4件の記事

2012年1月25日

字の小さい海外サイトを見やすくするFirefoxの設定(最小フォントサイズ)

海外のWebサイトは字がやたら小さい。たとえばCNNがそうだ。Red Hatのドキュメントも読みづらい。仕事で使い始めたOracle CRM On Demandも細かい字で表示されて、強度の近視に加えて老眼が始まっている目には非常に辛い。なるべくたくさんの情報を画面に出そうとしているのだろうか。日本語は画数の多い漢字を見分けられるように、大きめのフォントを使わざるを得ない。一方アルファベットは多少フォントサイズが小さくても判別しやすいということが背景にあるのだろう。

Firefoxのフォントサイズは16ポに設定している。これを大きくすると、今度は日本語Webページの表示が間延びしてしまう。Ctrl - +で拡大する手もあるが、サイトごとにこれをやるのもめんどくさいし、画像は拡大する必要がない。

そこで詳細設定の「最小フォントサイズ」をデフォルトの「なし」から「14」に変えてみた。こうすると、普通の文字が大きくなりすぎることなく、いままで小さすぎた文字が読みやすくなる。

Min_font_size

| | コメント (0)

Linuxのpartedでパーティションを作るときの警告メッセージ

partedでパーティションを作るとき、ディスクの先頭からパーティションを作ろうとして開始位置に「0」や「0M」を指定すると、「The resulting partition is not properly aligned for best performance」という警告が出力される。 単位を付けないときはメガバイトと解釈するから、「0」は「0M」と同じことである。

(parted) mkpart primary 0M 2048M                                          
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore                                                     
(parted) print                                                            
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  End     Size    Type     File system  Flags
 1      512B   2048MB  2048MB  primary

「0%」なら警告は出ない。

(parted) mkpart primary 0% 2048M                                         
(parted) print                                                            
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  2048MB  2047MB  primary

以上はpartedをオプションなしで起動したときで、アラインメントはデフォルトのOptimalになっている。「-a minimal」を指定すると「0M」でも警告は出ない。

もう少し分かりやすいメッセージにしてくれという要望がRed Hat BugzillaのBug 726856に上がっている。

Bug 726856 - Better warning instead of 'Warning: The resulting partition is not properly aligned for best performance.'
https://bugzilla.redhat.com/show_bug.cgi?id=726856

| | コメント (0)

VMware PlayerでマウントしたISOイメージからyumでパッケージをインストール

CentOSやRHELのyumは、インターネット上のリポジトリからパッケージをダウンロードする設定になっている。インターネットに接続できないテス ト環境などでは、DVDから読み込むこともできる。いちいちDVDメディアに焼かなくても、ISOイメージからインストールすることもできる。DVDメ ディアからインストールするCentOS 6のコマンドは次の通り。

# yum --disablerepo=\* --enablerepo=c6-media install system-config-lvm

デフォルトで有効になっているサーバリポジトリを無効にして、メディアをリポジトリとする設定ファイルc6-mediaを有効にする。このコマンドは /etc/yum.repos.d/CentOS-Media.repoに書いてある。この設定ファイルは、以下のパス名のどれかでDVDメディアがマウ ントされていることを想定している。

/media/CentOS/
/media/cdrom/
/media/cdrecorder/

しかしホストOSにあるISOイメージをVMware Playerでマウントすると、DVD#1もDVD#2も/media/CentOS_6.2_Finalというパス名が自動的に割り当てられ、パッケージを読み込めない。

# yum --disablerepo=\* --enablerepo=c6-media install system-config-lvm
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * c6-media:
file:///media/CentOS/repodata/repomd.xml: [Errno 14] Could not open/read file:///media/CentOS/repodata/repomd.xml
Trying other mirror.
file:///media/cdrecorder/repodata/repomd.xml: [Errno 14] Could not open/read file:///media/cdrecorder/repodata/repomd.xml
Trying other mirror.
file:///media/cdrom/repodata/repomd.xml: [Errno 14] Could not open/read file:///media/cdrom/repodata/repomd.xml
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: c6-media. Please verify its path and try again

そこで、/mediaの下にcdrom(もしくはCentOSやcdrecorder)という名前でシンボリックリンクを作る。

# cd /media
# ln -s CentOS_6.2_Final cdrom
# ls -l
total 4
lrwxrwxrwx. 1 root root   16 Jan 25 12:45 cdrom -> CentOS_6.2_Final
drwxr-xr-x. 6 XXXX XXXX 4096 Dec 17 09:03 CentOS_6.2_Final

これでyumが動くようになる。

# yum --disablerepo=\* --enablerepo=c6-media install system-config-lvm
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * c6-media:
file:///media/CentOS/repodata/repomd.xml: [Errno 14] Could not open/read file:///media/CentOS/repodata/repomd.xml
Trying other mirror.
file:///media/cdrecorder/repodata/repomd.xml: [Errno 14] Could not open/read file:///media/cdrecorder/repodata/repomd.xml
Trying other mirror.
c6-media                                                 | 4.0 kB     00:00 ...
c6-media/primary_db                                      | 3.5 MB     00:00 ...
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package system-config-lvm.noarch 0:1.1.12-9.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                 Arch         Version              Repository      Size
================================================================================
Installing:
 system-config-lvm       noarch       1.1.12-9.el6         c6-media       463 k

Transaction Summary
================================================================================
Install       1 Package(s)

Total download size: 463 k
Installed size: 3.1 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : system-config-lvm-1.1.12-9.el6.noarch                        1/1

Installed:
  system-config-lvm.noarch 0:1.1.12-9.el6

Complete!

(2012/08/02追記)
インターネットから完全に切り離された環境で、DVDのみをインストールメディアとして使いたいときは、CentOS-Base.repoの各セクション([base]、[updates]など)に「enabled=0」を記述し、CentOS-Media.repoの「enabled=0」を「enabled=1」に書き換える。これでGUIのPackage Managerを使ってソフトウェアを追加できる。

| | コメント (0)

2012年1月23日

Windowsの新ファイルシステムReFSが防ごうとしている「torn write」

Building Windows 8ブログにReFSの記事が掲載された。NTFSの後継となる新しいファイルシステムで、名称はResilient File System(回復性のあるファイルシステム)に由来する。その名前が示すとおり、電源断などの異常が起きてもファイルが破損しないように、そしてもしファイルシステムに異常が見つかっても、全体をオフラインにすることなく、異常部分を切り離して業務を継続できるように設計されている。

記事の中に「torn write」という聞き慣れない言葉が出てきた。以下の部分である。

The main disadvantages of a journaling system are that writes can get randomized and, more importantly, the act of updating the disk can corrupt previously written metadata if power is lost at the time of the write, a problem commonly known as torn write.

「commonly known」と書いているが、Googleで検索すると5000件弱しかヒットしない。検索結果の多くがExchange Serverのエラーメッセージに関するページである。「How to use Eseutil to test transaction log files for damage in Exchange 2000 Server and in Exchange Server 2003」の中で、torn writeを定義している。マイクロソフトによる日本語訳は「データの欠落したページ」「書き込み時のデータ欠落」である。

A torn write is an incomplete physical write that is left in the E00.log file after the database service suddenly stops. A torn write may be caused by a power failure, by an operating system crash, by invoking End Process on the database process, or by using a termination utility such as Kill.exe. A torn write causes checksums on the affected transactions in the log file to be calculated incorrectly, and the log is then detected as damaged by Eseutil.

FAST08でNetAppの技術者たちが発表したものと思われるプレゼンテーションも参考になる。「Torn Write」は、ブロックの一部だけが書き込まれ、セクタの一部が失われるが、Writeは成功するとされている。

Parity Lost and Parity Regained
http://www.cs.berkeley.edu/~krioukov/ParityLostAndParityRegained-FAST08.ppt

元のブロックを更新中に電源が落ちると、そこにあったデータの一部が書き換わり、新しいデータは一部しか反映されていないという中途半端な状態になり、データが破損する。チェックサムが不正となるので、問題があることが検出できるが、破損したデータはリカバリできない。これを防ぐためReFSは新しいブロックを割り当てて、更新データをそこに書き込む(allocation on write)。書き込み途中で電源が落ちても、元データは手つかずのまま残っている。とブログは書いている。

ZFSも似たようなアプローチを取っている。ブロックを更新するときに常に新しいブロックを割り当てる。ファイルシステムを構成するツリーの最上位まで正しく更新完了するまで、以前のデータを保持する。もし更新途中で問題が起きた場合は、更新前の状態に戻す。アトミックなトランザクションとして行われるため、ファイルの状態は更新前か更新後かどちらかに定まり、中途半端な状態にはならない。

| | コメント (0)

« 2011年11月 | トップページ | 2012年2月 »