2007年 12月 25日 火曜日
やっぱり Sun がスキ!
巷で話題の 64 スレッドマシンがやってきた!〜へっぽこ SE 奮闘記〜
「巷で話題の 64 スレッドマシンがやってきた! (^o^)/」
Niagara2 というコードネームで呼ばれていた Ultra SPARC T2 チップを搭載した
Sun SPARC Enterprise T5220 Server が用賀オフィスに届いたという噂を聞き、
その実機の内部を調査するため突撃リポートを行ってきましたのでご報告♪

まず初めに Sun SPARC Enterprise T5220 Server 製品を知らない方の為に簡単にご紹介。
T5220 は Ultra SPARC T2 という次世代の CPU を搭載したラックマウント型のサーバで
ハイパフォーマンス、低消費電力、低発熱と世界最高水準の設置効率と電気効率を実現
する次世代のプラットフォームです。

Ultra SPARC T2 は 8 個の物理コアを搭載し一つあたりの物理コアの上で 8 つのスレッドが
動きますので 8 x 8 で計 64 のスレッドのハイパフォーマンスな処理を実行できます。
また Solaris OS はスレッドを従来の物理 CPU リソースと分け隔て無く単純に CPU リソース
として扱いますので、アプリケーション からは 64 個の CPU リソースを持ったプラットフォーム
として見えます。CPU の複雑性や新実装部分はアプリケーションからは見えませんので、
このように革新的な CPU 実装が行われているにも関わらず、従来の SPARC プラットフォーム
向けに作られたプログラムをそのまま何も変更することなく Ultra SPARC T2 上で動作させる
ことができるのが大きな特長です!
【1】psrinfoコマンド結果 [/]# psrinfo 0 on-line since 12/14/2007 16:17:36 1 on-line since 12/14/2007 16:17:39 2 on-line since 12/14/2007 16:17:39 3 on-line since 12/14/2007 16:17:39 ・・・ちょっと長すぎるので・・中略 (^o^)・・・ 59 on-line since 12/14/2007 16:17:39 60 on-line since 12/14/2007 16:17:39 61 on-line since 12/14/2007 16:17:39 62 on-line since 12/14/2007 16:17:39 63 on-line since 12/14/2007 16:17:39
さて、そんな次世代の CPU を搭載したサーバ・プラットフォーム T5220 。実際に実機の蓋を
開けて一つ一つのパーツを詳しく調査することが出来ましたので写真付きでご紹介致します。

T5220 ではたった 2RU の筐体ですが、その内部には非常に高密度にパーツが搭載されています。
正面には 8 つの HDD と DVD ドライブが搭載され、背面には 冗長化された電源モジュールと
オンボードで 4 port の GbE 、そして 6 つの PCI スロットが搭載されています。このように
64 スレッドの CPU リソースを十二分に活用する為の足回りと拡張性が考慮された、高密度な
実装となっています。

蓋を開けて誰もが驚くのが、高密度にパーツが搭載されているのに設計はシンプルであること。
十分に空気の流れを考慮したパーツの配置はまさに究極の機能美といえるほどの美しさです。

T5220 のコアリソースとなる CPU の Ultra SPARC T2 は非常に低消費電力、低発熱な設計なので
CPU ファンは搭載されておらず冷却装置は小さなヒートシンクのみです。
多くの方が「CPU ってどこにあるの?」「えええ、これ?こんなに小さいの?」っと驚かれますが
このヒートシンクの小ささが何より Sun が他社に比べて如何に環境にやさしいプラットフォームを
市場に投入できているかの指標とも言え、非常に自負できる点です。

Ultra SPARC T2 には 4 つのメモリコントローラが搭載されその先に計 16 本の FB-DIMM が繋がれる
設計をとります。4 GB の DIMM を用いれば最大 64 GB のメモリをシステムに搭載することができ、
64 スレッドもの強大な CPU リソースに対比しても十分なメモリ帯域とメモリ容量で対応できる設計と
なっています。
FB-DIMM には熱を効率的に逃がすためのヒートシンクが付けられていて少し次世代的なデザインの
DIMM モジュールです。アクリルボードのエアーガイドが筐体に搭載されており空気の流れを集約的に
DIMM に沿って整わせることで筐体内の空冷をより効率の良いものに高めています。 (^o^)

Ultra SPARC T2 は驚くことにその CPU ダイ上に Dual 10 Gbit Ethernet モジュールを搭載して
います。 6 本 の PCI スロットの基盤の内の 2 本には PCI-E スロットの他に XAUI スロットが
搭載されていて、ここに 10 GbE XAUI Option Card をそれぞれ挿すことで 10 GbE の機能を非常に
低コストで最大 2 Port まで増設できます。
ここでポイントになることは CPU ダイ上に 10 Gbit Ethernet モジュールが実装されているので
CPU に直結であるということ。間に PCI Express のチップは介さないので独立した十分な帯域で
CPU と通信することができ、十二分に 10GbE 性能を発揮できる構造になります。

T5220 には最大 8 台の 2.5 inch の HDD を搭載可能です。2.5 inch とはいえ SAS Drive
モデルは 10000 回転の高速な HDD であるため十分な I/O 性能を発揮できます。
個人的に感動したのはこの HDD のブラケットの質感。アルミでしっかりと作られているので
グリップ部分の不安定感もなくカチっとはまる瞬間の心地良さは何とも言えません (笑)

FAN モジュールが故障し交換が必要になった際はラックマウントされてる T5220 を少しだけ
引き出して筐体上部の小窓を開くことでシステムを稼働させたまま FAN モジュールの交換を行う
ことが可能です。
FAN モジュールは二つの FAN が合わさって一体化されたもので T5220 には 3 モジュールの
計 6 個の FAN によって冷却されます。
FAN モジュールを挿入する列は 2 列ありますが Ultra SPARC T2 の発熱量が非常に小さい為
フルで FB-DIMM を実装したパターンでも 1 列のみを使用します。

FAN モジュールはドライバーレス設計で工具を用いずに交換が可能です。プラスチックの
外枠にはゴム足が取り付けられていてモジュールの振動を防ぐ設計になっています。

電源モジュールは冗長化されていて、どちらか片側が壊れてもシステムへは十分な電力が
供給できる設計になっています。電源はホットスワップ交換が可能な設計になっていますので
故障時にシステムに影響を与えることなく交換作業を行えます。

限られたスペースに多くのパーツを配置するための工夫が至る所で見られます。特に前面の
USB ポートは DVD-ROM Drive に一体化されて実装されていて、非常にコンパクトに収まって
います!この思い切りの良さに驚きました (^o^)
最後に、今回お見せしきれなかった T5220 の内部構造の詳細を "prtdiag -v" コマンド結果の
情報をお伝えすることで、お届けしようと思います (^o^)
【2】prtdiag -v コマンド結果
[/]# prtdiag -v
System Configuration: Sun Microsystems sun4v SPARC Enterprise T5220
Memory size: 65408 Megabytes
========================= CPUs ===============================================
CPU CPU
Location CPU Freq Implementation Mask
------------ ----- -------- ------------------- -----
MB/CMP0/P0 0 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P1 1 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P2 2 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P3 3 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P4 4 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P5 5 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P6 6 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P7 7 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P8 8 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P9 9 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P10 10 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P11 11 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P12 12 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P13 13 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P14 14 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P15 15 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P16 16 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P17 17 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P18 18 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P19 19 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P20 20 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P21 21 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P22 22 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P23 23 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P24 24 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P25 25 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P26 26 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P27 27 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P28 28 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P29 29 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P30 30 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P31 31 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P32 32 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P33 33 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P34 34 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P35 35 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P36 36 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P37 37 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P38 38 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P39 39 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P40 40 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P41 41 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P42 42 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P43 43 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P44 44 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P45 45 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P46 46 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P47 47 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P48 48 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P49 49 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P50 50 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P51 51 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P52 52 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P53 53 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P54 54 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P55 55 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P56 56 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P57 57 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P58 58 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P59 59 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P60 60 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P61 61 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P62 62 1417 MHz SUNW,UltraSPARC-T2
MB/CMP0/P63 63 1417 MHz SUNW,UltraSPARC-T2
============================ Memory Configuration ============================
Segment Table:
-----------------------------------------------
Base Address Size Interleave Factor Contains
-----------------------------------------------
0 64 GB 0 MB/CMP0/BR0/CH0/D0
MB/CMP0/BR0/CH0/D1
MB/CMP0/BR1/CH0/D0
MB/CMP0/BR1/CH0/D1
MB/CMP0/BR2/CH0/D0
MB/CMP0/BR2/CH0/D1
MB/CMP0/BR3/CH0/D0
MB/CMP0/BR3/CH0/D1
========================= IO Configuration =========================
IO
Location Type Slot Path Name Model
----------- ----- ---- --------------------------------------------- ------------------------- ---------
MB/PCIE PCIE MB /pci@0/pci@0/pci@1/pci@0/pci@1/pci@0 pci-pciexclass,060400
MB/NET0 PCIE MB /pci@0/pci@0/pci@1/pci@0/pci@2/network@0 network-pciex8086,105e
MB/NET-1 PCIE MB /pci@0/pci@0/pci@1/pci@0/pci@2/network network-pciex8086,105e
MB/NET-1 PCIE MB /pci@0/pci@0/pci@1/pci@0/pci/network network-pciex8086,105e
MB/NET-1 PCIE MB /pci@0/pci@0/pci@1/pci@0/pci/network network-pciex8086,105e
MB/PCIE PCIE MB /pci@0/pci@0/pci@2/scsi@0 scsi-pciex1000,58 LSI,1068E
========================= HW Revisions =======================================
System PROM revisions:
----------------------
OBP 4.27.1 2007/09/14 15:17
IO ASIC revisions:
------------------
Location Path Device Revision
-------------------- --------------------------------------------- ------------------------------ ---------
MB/PCI-SWITCH0 /pci@0/pci@0 pciex10b5,8533.aa 170
MB/PCI-SWITCH2 /pci@0/pci@0/pci@1/pci@0 pciex10b5,8517.ad 173
MB/GBE0 /pci@0/pci@0/pci@1/pci@0/pci@2/network@0 pciex8086,105e.108e.105e.6 6
MB/SAS-SATA-HBA /pci@0/pci@0/pci@2/scsi@0 pciex1000,58.1000.1000.2 2
【参考情報紹介】
今回ご紹介した Sun SPARC Enterprise T5220 をより詳しく知りたい方は以下の
製品情報のページを是非ご覧下さい。
また Sun SPARC Enterprise T5220 が如何に低消費電力・低発熱であるかを確認され
たい方は以下の場所に Power Calculator がありますのでお試し下さい (^o^)
□ Sun SPARC Enterprise T5220 Server 製品情報
http://www.sun.com/servers/coolthreads/t5220/
□Sun SPARC Enterprise T5220 Power Calculator
http://www.sun.com/servers/coolthreads/t5220/calc/index.jsp
Posted at 02:34午後 12 25, 2007 by moridenki in Sun | 投稿されたコメント[1]
便利ツール dim_STAT の紹介
【概要】
今回はちょっと便利なツールを紹介させていただきます。
皆さんは検証をやるときにいろいろな stat 系のコマンドを使用されると思いますが、取ったデータを加工するのって結構大変ではないですか。
こんな感じで
bash-3.00# iostat 1 tty sd1 sd2 sd3 nfs1 cpu tin tout kps tps serv kps tps serv kps tps serv kps tps serv us sy wt id 0 8 10 0 14 0 0 0 0 0 0 0 0 0 0 0 0 100 0 707 2057 4 18 0 0 0 0 0 0 0 0 0 3 0 0 97 0 243 3073 3 22 0 0 0 0 0 0 0 0 0 3 1 0 97 0 243 2048 2 19 0 0 0 0 0 0 0 0 0 3 0 0 97 0 243 3072 3 22 0 0 0 0 0 0 0 0 0 3 0 0 97 0 243 2048 2 34 0 0 0 0 0 0 0 0 0 3 0 0 97 0 243 3072 3 15 0 0 0 0 0 0 0 0 0 3 0 0 97 0 243 3080 5 16 0 0 0 0 0 0 0 0 0 3 0 0 97
テキストで抽出したデータをエクセル等に読み込ませてグラフなどを作成しているのではないでしょうか。
その面倒くさい悩みを解消するのが、今回ご紹介させていただきます dim_STAT と言うツールです。
このツールはフランスにいる Sun の社員が開発したものです。
特徴としては各クライアントにエージェントを登録させて、サーバに STAT データを送り込みます。
サーバはそのデータを DB に溜めて一括集中管理をします。
その情報が必要なときにはサーバにアクセスすれば、WEB ブラウザーでグラフィカルに表示させて見ることができます。
イメージとしてはこんな感じです。
ホームページも公開されていますので、興味のある方は一度覗いてみてください。
Dimitri (dim) Tools HOMEPAGE
ここにはツールのバイナリやマニュアルがあります。
【インストール】
では、実際に使ってみましょう。
インストールはいたって簡単で、サーバに本体をインストールし、クライアントにはエージェントインストールするだけです。
対応 OS は Solaris SPARC/x86 と Linux となります。
エージェントは上のものに加えて HP-UX にもあるようです。
まずはサーバへインストールします。
対応する OS の tar 形式のインストールファイルをダウンロードしてきます。
(今回はサーバ SPARC にしましたので dim_STAT-v81.tar をダウンロードします。)
インストール方法はマニュアルにも記載されていますが、実際には以下のようになります。
『サーバインストール』
bash-3.00# tar xvf dim_STAT-v81.tar
x dim_STAT-INSTALL, 0 bytes, 0 テープブロック
.......
x dim_STAT-INSTALL/UNINSTALL.txt, 352 bytes, 1 テープブロック
bash-3.00# ls
dimInst.log dim_STAT-INSTALL dim_STAT-v81.tar
bash-3.00# cd dim_STAT-INSTALL
bash-3.00# ls -la
合計 826
....
-rwxr-xr-x 1 1000 100 86 5月 4日 2007年 INSTALL.sh
....
bash-3.00# ./INSTALL.sh
===========================================
** Starting dim_STAT Server INSTALLATION **
===========================================
HOSTNAME: ssc2226
IP: 22.0.2.6
DOMAINE:
Is it correct? (y/n): y
....
User: dim
Group: dim
Is it correct? (y/n): y
....
May I create this USER/GROUP on your host? (y/n): y
======================================
** dim_STAT Directory Configuration **
======================================
** WebX root directory (5MB):
=> /WebX
=> /opt/WebX
=> /etc/WebX
[/opt/WebX]:
** HOME directory for dim_STAT staff [/apps]:
** TEMP directory [/tmp]:
** HTTP Server Port [80]: <---- ◆ここは注意◆
** DataBase Server Port [3306]: 他の Web サービスとバッティング
** Default STAT-service Port [5000]: しないようにしてください
==================================================
** Process...
==================================================
=> Host : ssc2226
=> IP address : 22.0.2.6
=> Domain :
=> User : dim
=> Group : dim
=> WebX root directory : /opt/WebX
=> HOME directory : /apps
=> TEMP directory : /tmp
=> HTTP Server Port : 80
=> DataBase Server Port : 3306
=> Default STAT-service Port : 5000
Is it correct? (y/n): y
** WARNING!!!
....
** INSTALLATION is finished!!!
**
May I create now a dim_STAT-Server start/stop script in /etc/rc*.d? (y/n): y
** =========================================================================
** You can start dim_STAT-Server now from /apps/ADMIN:
**
** # cd /apps/ADMIN
** # ./dim_STAT-Server start
**
** and access homepage via Web browser - http://ssc2226:80
**
** To collect stats from any Solaris-SPARC/x86 or Linux-x86 machines
** just install & start on them [STAT-service] package...
**
** Enjoy! ;-)
**
** -Dimitri
** =========================================================================
インストールの最後にシステムの起動方法が記述されているのその通りに実行してみます。
bash-3.00# bash-3.00# cd /apps/ADMIN bash-3.00# ./dim_STAT-Server start ================[ dim_STAT-Server: start ]================ * * MySQL Database Server * => Log output : /apps/mysql/data/mysqld.log.3306 => Local socket: /apps/mysql/data/mysql.sock.3306 => Admin Access: root# /apps/mysql/bin/mysql -S /apps/mysql/data/mysql.sock.3306 Starting... Starting mysqld daemon with databases from /apps/mysql/data Done. Starting HTTP server from: /apps/httpd Done. ================[ dim_STAT-Server: start -- done. ]================ bash-3.00#
これでサーバへのインストールは完了です。
『クライアントインストール』
次にクライアントへのエージェントの登録ですが、そのエージェントはサーバ用のインストールディレクトリの下にあります。
bash-3.00# cd dim_STAT-INSTALL/ bash-3.00# ls -la .... drwxr-xr-x 2 1000 dim 512 4月 25日 2007年 STAT-service .... bash-3.00# cd STAT-service/ bash-3.00# ls STATsrv-HPUX.tar STATsrv-Lux.tgz STATsrv-Sol86.pkg STATsrv-Sol86.tar STATsrv-src.tgz STATsrv.pkg STATsrv.tar bash-3.00#
このディレクトリにある OS に対応したファイル(pkg or tgz or tar)をそれぞれのクライアントにコピーしてインストールします。(インストール方法はマニュアルにありますので読んでください。)
今回はクライアントも SPARC なので STATsrv.pkg を使用しました。
bash-3.00# pkgadd -d STATsrv.pkg
The following packages are available:
1 STATsrv dim_STAT: Solaris STAT-service
(sparc) 8.1+
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all
中のパッケージインスタンス を処理中です。
dim_STAT: Solaris STAT-service(sparc) 8.1+
by Dimitri KRAVTCHUK, Paris Sun Benchmark Center, FRANCE.
## パッケージ情報を処理中です。
## システム情報を処理中です。
## ディスク領域の要件を確認中です。
## すでにインストール済みのパッケージとの重複を確認中です。
## setuid/setgid を行うプログラムを検査中です。
dim_STAT: Solaris STAT-service を としてインストール中です。
## 1/1 部分をインストールしています。
/etc/STATsrv/STAT-service
.....
/etc/rc0.d/K10stat-srv <シンボリックリンク> <--- 必要な Script を自動で登録して
/etc/rc1.d/K10stat-srv <シンボリックリンク> くれるので私は pkg をお勧めします。
/etc/rc2.d/S99stat-srv <シンボリックリンク>
/etc/rcS.d/K10stat-srv <シンボリックリンク>
[ クラス を検査しています ]
のインストールに成功しました。
bash-3.00#
これでクライアントへのインストールも完了です。
マニュアルに従ってサービスを起動します。
bash-3.00# /etc/STATsrv/STAT-service start Start STAT-service... port: 5000 access log: /etc/STATsrv/log/access.log bash-3.00#
【dim_STAT 起動】
起動は Web ブラウザーから上で設定したポート(80)に対してアクセスします。
|
|
| dim_STAT起動画面 | dim_STAT Top 画面 |
dim_STAT Main Page の 「welcome」 をクリックしたら右図のような Main ページが表示されます。
これで起動は完了です。この後は、「Start New Collect]で情報を取得するクライアントの登録と取得する項目を設定すれば、「Analyze」で取得データをグラフ化して見ることができます。
【dim_STAT Data View】
クライアント設定時に登録した Interval Time(秒)ごとに取得されたデータは、サーバの DB (MySQL) に溜めて、そのデータを基にグラフ処理して表示させます。
|
|
| dim_STAT グラフ1 | dim_STAT グラフ2 |
以上で、簡単ですが dim_STAT の概要とインストールについて紹介させていただきました。
設定する項目がいろいろあって、ちょっと面倒くさいところもありますが、マニュアル見れば きちんと記述されています。
このツールの製作者は、もっとツールをより良くしたいと考えています。なので皆さんがどんどん使ってみて気が付いたこと、こうしたら良くなるなど feedback を頂ければ製作者もきっと喜ぶと思いますよ。
Posted at 04:14午後 12 20, 2007 by Golgo1.3 in Sun | 投稿されたコメント[0]
文字コードを判別するコマンドご紹介 = auto_ef
今回は、結構知らない人も多い Solaris 上で文字コード(EUC,SJIS,JIS,UTF-8 等)を 判別する auto_ef(1)をご紹介します。
コマンド名は auto encoding finder の略なので、覚えるのも 簡単かと。
以下試してみた結果です
% setenv LANG ja_JP.eucJP % echo "文字コード" > txt.euc % iconv -f EUC-JP -t SHIFT-JIS txt.euc > txt.sjis % iconv -f EUC-JP -t ISO-2022-JP txt.euc > txt.jis % iconv -f EUC-JP -t UTF-8 txt.euc > txt.utf8 % auto_ef * txt.euc: eucJP txt.jis: ISO-2022-JP txt.sjis: PCK txt.utf8: UTF-8
基本は auto_ef "ファイル名" で文字コードの判別が可能です。 オプションでどの文字コードの可能性があるかの一覧を見ることも出来ますので、 ご興味のある方は auto_ef(1) をご覧ください。
知っていると便利だと思いますので、何かの時にご使用ください。
Posted at 11:06午前 12 18, 2007 by Chizu Kitano in Sun | 投稿されたコメント[0]
ZFS スナップショット
今回は、 ZFS のスナップショット機能に関して少し掘り下げて説明します。
ZFS のスナップショットを作成すると、ご存じの通り変更後のファイル
システムをスナップショットの状態に戻す事ができます。
それでは、実際にスナップショットを作成して、ZFS がどのような動作をするか
見てみましょう。
まずは、testpool/home ファイルシステムにスナップショット @monday を作成します。
# zfs snapshot testpool/home@monday # zfs list NAME USED AVAIL REFER MOUNTPOINT testpool 2.16M 252M 38.2K /testpool testpool/home 2.04M 252M 2.04M /testpool/home testpool/home@monday 0 - 2.04M -
スナップショットの名前は、 @monday のように @ を付けて指定します。
このスナップショットの実体は、物理コピーでなく変更のあった差分だけデータ を保持しますので、最初は @monday スナップショットの USED が 0 Byte になります。
そこで、testpool/home ファイルシステムから差分を発生させる為、 1M Byte の ファイル aaa を消してみます。
# ls -l /testpool/home 合計 4108 -rw-rw-rw- 1 root root 1048576 12月 12日 17:26 aaa -rw-rw-rw- 1 root root 1048576 12月 12日 17:23 bbb # rm /testpool/home/aaa # zfs list NAME USED AVAIL REFER MOUNTPOINT testpool 2.26M 251M 38.2K /testpool testpool/home 2.07M 251M 1.04M /testpool/home testpool/home@monday 1.04M - 2.04M -1M Byte のファイルを消去しましたので、@monday スナップショットの USED が 1M Byte (消去したファイル分)になりました。
ここで、作成したスナップショットのデータはどこに存在しているのでしょうか?
作成したスナップショットは、ファイルシステム直下の隠しファイル .zfs/snapshot ディレクトリ以下に存在します。
# ls -al /testpool/home 合計 6170 drwxr-xr-x 2 root sys 5 12月 12日 16:31 . drwxr-xr-x 3 root sys 3 12月 12日 16:22 .. -rw-rw-rw- 1 root root 1048576 12月 12日 16:28 aaals -al オプションでリストを表示しても、.zfs ディレクトリはデフォルトで 表示されませんが .zfs/snapshot ディレクトリを直接指定してリストを表示 してみます。
# ls -l /testpool/home/.zfs/snapshot 合計 4 drwxr-xr-x 2 root sys 4 12月 12日 16:27 monday # ls -l /testpool/home/.zfs/snapshot/monday 合計 4108 -rw-rw-rw- 1 root root 1048576 12月 12日 16:28 aaa -rw-rw-rw- 1 root root 1048576 12月 12日 16:29 bbbこのスナップショットのデータは、読み込み専用で参照する事が可能なので、一部のファイル を戻したい時は、ここのディレクトリから直接コピーしてファイルを復旧する事ができます。
最後にロールバック機能を説明します。
下記例では、スナップショット @monday と @tuesday があり、新しい方の @tuesday をロールバックしてみます。
# zfs list NAME USED AVAIL REFER MOUNTPOINT testpool 3.24M 251M 38.2K /testpool testpool/home 3.11M 251M 2.04M /testpool/home testpool/home@monday 1.04M - 2.04M - testpool/home@tuesday 33.7K - 1.04M - # zfs rollback testpool/home@tuesday作成したスナップショットを戻す時は、rollback オプションを使用します。
最新のスナップショットではなく、何世代か前のスナップショット(ここでは @monday) をロールバックする時は、さらに -r オプションを付与して実行します。
# zfs rollback -r testpool/home@monday # zfs list NAME USED AVAIL REFER MOUNTPOINT testpool 2.16M 252M 38.2K /testpool testpool/home 2.04M 252M 2.04M /testpool/home testpool/home@monday 0 - 2.04M -補足として、何世代か前のスナップショットをロールバックすると、それより 新しい(この場合は @tuesday)スナップショットは消えてしまいます。
ZFS スナップショット機能は、早い、簡単、便利の3拍子揃っていますので、 是非お試し下さい!
Posted at 05:50午後 12 17, 2007 by Naoyuki Yamada in Sun | 投稿されたコメント[0]