EDINETのサンプルインスタンスの表示について

XBRLの調査を兼ねていくつかのサンプルインスタンス(財務情報)の確認を行った。
サンプルインスタンスの表示には、東証からダウンロード可能な富士通製の「インスタンス ビューワ プラグイン」を利用。
インスタンスビューワプラグインをインストールすると、インストール先のSampleTaxonomyディレクトリにシンプルなインスタンス文書並びにタクソノミスキーマ並びにリンクベースが一緒にインストールされる。

さっそく、その中のインスタンス文書(instance.xbrl)をブラウザで開いてみると

「Now XBRL Processing ...」とブラウザ上に表示され、しばらくすると財務情報が表示されます。

続いて、東証が試験公開している決算短信XBRLデータをダウンロードしてきて、同じくブラウザで開いてみた。

「Now XBRL Processing ...」とブラウザ上に表示され、しばらくすると財務情報が表示されます。

次に、金融庁のホームページ(EDINET)から平成20年2月8日に公開されたサンプルインスタンスをダウンロードして表示してみる。

「Now XBRL Processing ...」とブラウザ上に表示され、しばらくするとエラーになってしまった。

Error Occurred :
System.Net.WebException: リモート サーバーがエラーを返しました : (401) 許可されていません
at System.Net.HttpWebRequest.CheckFinalStatus()
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.HttpWebRequest.GetResponse()
at a.a.a.a.d.a.a(String A_0, String A_1, Source A_2)

内容からすると、httpのリクエストを行って401のステータスが戻ってきたようである。インスタンス文書の中身を確認してみると、各種ロールのスキーマファイルがxlinkで指定されている。試しにその中の一つをブラウザのURLに指定してみたところ、ベーシック認証の画面がかえってきた。たぶん、テスト公開中ということなので直接参照をすることができない(限定している)ようになっているみたいである。

そこで、EDINETタクソノミ本体は公開されているのでこれをダウンロードして、自前でWebサーバを立てることにした。
ちょうど、VMWareで色々とテストしていた環境があったので、そこにEDINETタクソノミ本体を展開してローカルマシンのhostsを
追記してフェイクのEDINETタクソノミスキーマサーバを構築。
今後、本格的にEDINETタクソノミが公開されるようになった場合にはhostsの書き換えを忘れないようにしないといけない。

ブラウザでサンプルインスタンスを開いて見ると

「Now XBRL Processing ...」とブラウザ上に表示された後に無事に財務情報が表示された。

色々な資料を読み漁ってはいるが、とにかくサンプルデータを色々と触って内容を確認していくほうが私にとってはわかり易い気がする。

現在、EDINET(Electronic Disclosure for Investors' NETwork:証券取引法に基づく有価証券報告書等の開示書類に関する電子開示システム)とTDnet(Timely Disclosure network:適時開示情報伝達システム)でXBRL化に際して、一元化する報告で作業が進められているみたいである。XBRL自体が非常に拡張性のことを考えて作られているようであるが、それがかえって難しくしている気がしないでもない。どうも、この手のXMLの規格は複雑すぎてちょっと試してみるには敷居が高いと感じてしまう。ただし、企業の財務分析を行う上で必要な財務情報が解析可能な状態で入手できるということは非常にありがたいと思うので是非とも普及してもらいたいものである。

XBRLとの格闘はまだまだ続く・・・

ビジネススクールで身につける会計力と戦略思考力 (日経ビジネス人文庫 ブルー お 7-1 ポケットMBA 4)ビジネススクールで身につける会計力と戦略思考力 (日経ビジネス人文庫 ブルー お 7-1 ポケットMBA 4)
(2007/08)
大津 広一

商品詳細を見る
決算書がスラスラわかる 財務3表一体理解法 (朝日新書 44) (朝日新書 44)決算書がスラスラわかる 財務3表一体理解法 (朝日新書 44) (朝日新書 44)
(2007/05/11)
國貞 克則

商品詳細を見る

XBRLメモ

XBRLとは
XBRL(eXtensible Business Reporting Language)は各種財務報告用の情報を作成・流通・利用できるように標準化されたXMLベースの言語です。

端的にまとめると
XMLを用いた各種財務報告書の標準化。
・タクソノミを利用した、様々な用途に利用可能な財務情報の記述。

その結果として、企業が作成するXBRLを利用することにより、財務情報処理の簡素化や投資家や第三者機関による再利用の促進を図ることが可能になります。現在、EDINET(Electronic Disclosure for Investors' NETwork:証券取引法に基づく有価証券報告書等の開示書類に関する電子開示システム)とTDnet(Timely Disclosure network:適時開示情報伝達システム)でXBRL化に際して、一元化する報告で作業が進められています。

XBRLの基本要素

インスタンス文書
実際の財務情報を記述した文書

報告情報
・数値、テキスト
コンテキスト情報
・期、年度
ユニット情報
・円、ドル

▽タクソノミ文書
会計情報等としての表示順序や、表示文字列や計算プロセスなどを規定

・タクソノミスキーマXML Schema
 インスタンス文書の語彙(要素名、属性など)を定義したもので、勘定科目名や注意事項などの項目

・リンクベース(XLink
 タクソノミスキーマ定義された、項目間の関係や追加情報を記述。(後述:XBRLが定義するリンク)


XBRLが定義するリンク 
・Presentation Linkbase
 項目間の表示順を定義
・Calculation Linkbase
 項目間の計算式を定義
・Definition Linkbase
 項目間の親子関係を定義
・Label Linkbase
 項目の表示名称を定義
・Reference Linkbase
 項目の参考文献を定義

参考サイト
XBRL JAPAN http://www.xbrl-jp.org/index.html
金融庁   http://www.fsa.go.jp/singi/edinet/index.html
東証    http://www.tse.or.jp/rules/td/xbrl/activity.html

Distributed File of MySQL

Distributed file using InnoDB for a storage engine is set up.
In my case, since the table etc. was already created, it worked including data shift.

As a flow of work, it is as in general follows.
1.Export of data.
2.Back up data directory of MySQL data.
3.Change of my.cnf
4.Import of data.

1.mysqldump is used and it is export of a database (a definition is included).
[root@c1 mysql]# mysqldump --user=root --password={PASSWORD} --socket=/tmp/mysql.sock --single-transaction --master-data --flush-logs --hex-blob --default-character-set=utf8 --all-databases --result-file=/tmp/all-backup.dmp

2.The existing data storage directory is saved by an alias.

[root@c1 mysql]#mv mysql mysql.bak

3.A data storage directory is created newly.

[root@c1 mysql]# mkdir ./mysql/archive ./mysql/data ./mysql/data1 ./mysql/data2 ./mysql/logdir
[root@c1 mysql]# chown -R mysql:mysql archive data data1 data2 logdir

4.Change of my.cnf.

The following is added.

innodb_data_home_dir =
innodb_data_file_path = /home/mysql/data1/ibdata1:300M;/home/mysql/data2/ibdata2:300M
innodb_file_per_table

When distributing a data file, innodb_data_home_dir is emptied, and a data file is specified by innodb_data_file_path.
The above-mentioned example creates mysql/data1/ibdata1 and mysql/data2/ibdata2 by 300M, respectively.

5.Import of data.

Starting of MySQL

The following option is attached and MySQL is started.
[root@c1 mysql]# mysqld_safe --defaults-file=/etc/my.cnf --skip-networking --skip-grant-tables &

Import of data.

[root@c1 mysql]# mysql --user=root --password={PASSWORD} --socket=/tmp/mysql.sock < /home/share/dev/mysql/archive/all-20080216.dmp

Stop of MySQL

[root@c1 mysql]# /etc/rc.d/init.d/mysql stop
Shutting down MySQL. [ OK ]

Deletion of a log

Since it is unnecessary that some logs for a relay are created when it imports, it deletes.
[root@c1 data]# cd /home/mysql/data
[root@c1 data]# rm -rf c1-relay-bin.000001 c1-relay-bin.index master.info relay-log.info

Starting of MySQL

[root@c1 mysql]# /etc/rc.d/init.d/mysql start
Starting MySQL. [ OK ]

MySQLによる最速RDBMS構築ガイドMySQLによる最速RDBMS構築ガイド
(2005/09/17)
鶴長 鎮一、MCEA DB研究会 他

商品詳細を見る

MySQLのファイル分散

ストレージエンジンにInnoDBを利用した場合のファイル分散の設定を行う。
私の場合は既にテーブル等を作成してしまっていたため、データ移行を含めて作業を実施した。

作業の流れとしては概ね下記のとおり。
1.データのエクスポート
2.既存データファイルの退避
3.my.cnfの変更
4.データのインポート

1.mysqldumpを利用してデータベース(定義を含む)のエクスポート

[root@c1 mysql]# mysqldump --user=root --password={パスワードを指定} --socket=/tmp/mysql.sock --single-transaction --master-data --flush-logs --hex-blob --default-character-set=utf8 --all-databases --result-file=/tmp/all-backup.dmp

2.既存のデータ保存ディレクトリを別名にて保存

[root@c1 mysql]#mv mysql mysql.bak

3.新規にデータ保存ディレクトリを作成

[root@c1 mysql]# mkdir ./mysql/archive ./mysql/data ./mysql/data1 ./mysql/data2 ./mysql/logdir
[root@c1 mysql]# chown -R mysql:mysql archive data data1 data2 logdir

4.my.cnfを変更

下記を追加
innodb_data_home_dir =
innodb_data_file_path = /home/mysql/data1/ibdata1:300M;/home/mysql/data2/ibdata2:300M
innodb_file_per_table

データファイルを分散させる場合はinnodb_data_home_dirを空にして、innodb_data_file_pathでデータファイルを指定する。
上記の場合はmysql/data1/ibdata1とmysql/data2/ibdata2をそれぞれ300Mで作成。

5.データのインポート

MySQLの起動

MySQLを下記のオプションをつけて起動する。
権限テーブルがないので、--skip-grant-tablesをつける。
[root@c1 mysql]# mysqld_safe --defaults-file=/etc/my.cnf --skip-networking --skip-grant-tables &

データのインポート

[root@c1 mysql]# mysql --user=root --password={パスワードを指定} --socket=/tmp/mysql.sock < /home/share/dev/mysql/archive/all-20080216.dmp

MySQLの停止

[root@c1 mysql]# /etc/rc.d/init.d/mysql stop
Shutting down MySQL. [ OK ]

ログの削除

インポートした際にリレー用のログがいくつか作成されるのが、不要なため削除する。
[root@c1 data]# cd /home/mysql/data
[root@c1 data]# rm -rf c1-relay-bin.000001 c1-relay-bin.index master.info relay-log.info

MySQLの起動

[root@c1 mysql]# /etc/rc.d/init.d/mysql start
Starting MySQL.
[ OK ]

MySQLによる最速RDBMS構築ガイドMySQLによる最速RDBMS構築ガイド
(2005/09/17)
鶴長 鎮一、MCEA DB研究会 他

商品詳細を見る

Partition extension using LMV(Logical Volume Manager)

I have using CentOS 5.0 on vmware. I created 5GB initial file size that size is becoming insufficient.I tried to partition extension LVM.

1.Virtual Disk is newly added by VMWare

2.A partition is created.
A partition is created first.
New partition was sdb, the partition of Linux LVM form will be created using fdisk.

[root@c1 ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

The number of cylinders for this disk is set to 1044.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4):
Value out of range.
Partition number (1-4): 1
First cylinder (1-1044, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044):
Using default value 1044

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): L

0 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot
1 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris
2 XENIX root 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
5 Extended 41 PPC PReP Boot 85 Linux extended c7 Syrinx
6 FAT16 42 SFS 86 NTFS volume set da Non-FS data
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 DOS access
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT
10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor
16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT
1c Hidden W95 FAT3 75 PC/IX
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@c1 ~]#
3.physical volume initialize.

[root@c1 ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created

?For a volume group physical volume add.
Before adding to a volume group, a volume group is checked in advance.

[root@c1 ~]# vgdisplay -v
Finding all volume groups
Finding volume group "VolGroup00"
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 5.88 GB
PE Size 32.00 MB
Total PE 188
Alloc PE / Size 188 / 5.88 GB
Free PE / Size 0 / 0
VG UUID JbYi1a-uXuN-H9gb-tHka-4nqW-JKnf-tcQ0o5

--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID 4Ob3hN-VeSd-tIuO-AeDN-FRCa-JHH9-rlQiK2
LV Write Access read/write
LV Status available
# open 1
LV Size 4.88 GB
Current LE 156
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:0

--- Logical volume ---
LV Name /dev/VolGroup00/LogVol01
VG Name VolGroup00
LV UUID L0pn6g-R44S-ildG-rjts-7L3j-5dkn-NLSu0O
LV Write Access read/write
LV Status available
# open 1
LV Size 1.00 GB
Current LE 32
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:1

--- Physical volumes ---
PV Name /dev/sda2
PV UUID DFwi4T-xS3b-Q70Q-OofC-IbKq-Y0ga-h2kVOS
PV Status allocatable
Total PE / Free PE 188 / 0

[root@c1 ~]#
"VolGroup00" becomes a volume group.
/dev/sdb1 is added to a volume group.

[root@c1 ~]# vgextend VolGroup00 /dev/sdb1
Volume group "VolGroup00" successfully extended
[root@c1 ~]#

Check volume group.

[root@c1 ~]# vgdisplay -v
Finding all volume groups
Finding volume group "VolGroup00"
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 13.84 GB
PE Size 32.00 MB
Total PE 443
Alloc PE / Size 188 / 5.88 GB
Free PE / Size 255 / 7.97 GB
VG UUID JbYi1a-uXuN-H9gb-tHka-4nqW-JKnf-tcQ0o5

--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID 4Ob3hN-VeSd-tIuO-AeDN-FRCa-JHH9-rlQiK2
LV Write Access read/write
LV Status available
# open 1
LV Size 4.88 GB
Current LE 156
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:0

--- Logical volume ---
LV Name /dev/VolGroup00/LogVol01
VG Name VolGroup00
LV UUID L0pn6g-R44S-ildG-rjts-7L3j-5dkn-NLSu0O
LV Write Access read/write
LV Status available
# open 1
LV Size 1.00 GB
Current LE 32
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:1

--- Physical volumes ---
PV Name /dev/sda2
PV UUID DFwi4T-xS3b-Q70Q-OofC-IbKq-Y0ga-h2kVOS
PV Status allocatable
Total PE / Free PE 188 / 0

PV Name /dev/sdb1
PV UUID H2UESi-01ZR-uecI-W9j0-Db5i-zFy1-3a1Yeq
PV Status allocatable
Total PE / Free PE 255 / 255

[root@c1 ~]#
It turns out that it is added to the end.

?Logic volume extende.
It refers to the following information displayed by "vgdisplay-v."
By having added, "Free PE" is 255 and "Total PE" is changing to 443.

Before added
Total PE 188
Alloc PE / Size 188 / 5.88 GB
Free PE / Size 0 / 0

After added
Total PE 443
Alloc PE / Size 188 / 5.88 GB
Free PE / Size 255 / 7.97 GB

All the empty spaces will be assigned to logic volume this time.
In order to measure extended size, Total PE is specified and lvextend is performed.
(Although this hit should have the method of the right calculation, it has done by trial and error.)

[root@c1 ~]# lvextend -l 443 /dev/VolGroup00/LogVol00
Extending logical volume LogVol00 to 13.84 GB
Insufficient free space: 188 extents needed, but only 156 available

Since it is what is being done for 32extents shortage, 411 is specified and performed again.

[root@c1 ~]# lvextend -l 411 /dev/VolGroup00/LogVol00
Extending logical volume LogVol00 to 12.84 GB
Logical volume LogVol00 successfully resized

It check.

[root@c1 ~]# vgdisplay -v
Finding all volume groups
Finding volume group "VolGroup00"
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 8
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 13.84 GB
PE Size 32.00 MB
Total PE 443
Alloc PE / Size 443 / 13.84 GB
Free PE / Size 0 / 0
VG UUID JbYi1a-uXuN-H9gb-tHka-4nqW-JKnf-tcQ0o5

--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID 4Ob3hN-VeSd-tIuO-AeDN-FRCa-JHH9-rlQiK2
LV Write Access read/write
LV Status available
# open 1
LV Size 12.84 GB
Current LE 411
Segments 2
Allocation inherit
Read ahead sectors 0
Block device 253:0

--- Logical volume ---
LV Name /dev/VolGroup00/LogVol01
VG Name VolGroup00
LV UUID L0pn6g-R44S-ildG-rjts-7L3j-5dkn-NLSu0O
LV Write Access read/write
LV Status available
# open 1
LV Size 1.00 GB
Current LE 32
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:1

--- Physical volumes ---
PV Name /dev/sda2
PV UUID DFwi4T-xS3b-Q70Q-OofC-IbKq-Y0ga-h2kVOS
PV Status allocatable
Total PE / Free PE 188 / 0

PV Name /dev/sdb1
PV UUID H2UESi-01ZR-uecI-W9j0-Db5i-zFy1-3a1Yeq
PV Status allocatable
Total PE / Free PE 255 / 0

[root@c1 ~]#
The state of a partition is checked.

[root@c1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
4.8G 4.3G 213M 96% /
/dev/sda1 99M 11M 83M 12% /boot
tmpfs 189M 0 189M 0% /dev/shm
[root@c1 ~]#

6.A file system is made to extend without unmounting.

[root@c1 ~]# resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 3366912 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 3366912 blocks long.

[root@c1 ~]#
I check.

[root@c1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
13G 4.3G 7.6G 37% /
/dev/sda1 99M 11M 83M 12% /boot
tmpfs 189M 0 189M 0% /dev/shm
[root@c1 ~]#

The availability increased safely.

LVM利用時のパーティション拡張

VMWareを利用して、CentOS 5.0を利用してきたところ初期のファイルサイズが5GBに設定されており、サイズが足りなくなってきたので新しいファイルシステムを拡張することにしました。何も考えずにCentOSをインストールしたため、LVM(Logical Volume Manager)という形式で管理されていたため、どうせならLVMを最大限に利用した方法で、ファイルシステムを拡張することにしました。CentOS5.0であれば、再起動せずにファイルシステムを拡張できるみたいなので、テストがてら試してみました。

VMWareで新たにVirtual Diskを追加(通常の場合は物理HDDを追加することになる)

パーティションの作成
最初にパーティションを作成する。sdbとして認識されているためfdiskを利用してLinux LVM形式のパーティションを作成することにする。

[root@c1 ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

The number of cylinders for this disk is set to 1044.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4):
Value out of range.
Partition number (1-4): 1
First cylinder (1-1044, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044):
Using default value 1044

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): L
0 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot
1 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris
2 XENIX root 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
5 Extended 41 PPC PReP Boot 85 Linux extended c7 Syrinx
6 FAT16 42 SFS 86 NTFS volume set da Non-FS data
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 DOS access
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT
10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor
16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT
1c Hidden W95 FAT3 75 PC/IX
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@c1 ~]#
③ physical volume の初期化をします。
[root@c1 ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
[root@c1 ~]#

④ ボリュームグループに physical volume を追加をします。
ボリュームグループに追加する前に、事前にボリュームグループの確認を行います。

[root@c1 ~]# vgdisplay -v
Finding all volume groups
Finding volume group "VolGroup00"
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 5.88 GB
PE Size 32.00 MB
Total PE 188
Alloc PE / Size 188 / 5.88 GB
Free PE / Size 0 / 0
VG UUID JbYi1a-uXuN-H9gb-tHka-4nqW-JKnf-tcQ0o5

--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID 4Ob3hN-VeSd-tIuO-AeDN-FRCa-JHH9-rlQiK2
LV Write Access read/write
LV Status available
# open 1
LV Size 4.88 GB
Current LE 156
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:0

--- Logical volume ---
LV Name /dev/VolGroup00/LogVol01
VG Name VolGroup00
LV UUID L0pn6g-R44S-ildG-rjts-7L3j-5dkn-NLSu0O
LV Write Access read/write
LV Status available
# open 1
LV Size 1.00 GB
Current LE 32
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:1

--- Physical volumes ---
PV Name /dev/sda2
PV UUID DFwi4T-xS3b-Q70Q-OofC-IbKq-Y0ga-h2kVOS
PV Status allocatable
Total PE / Free PE 188 / 0

[root@c1 ~]#

「VolGroup00」がボリュームグループになります。そのボリュームグループに/dev/sdb1を追加します。

[root@c1 ~]# vgextend VolGroup00 /dev/sdb1
Volume group "VolGroup00" successfully extended
[root@c1 ~]#

反映されているかどうかを確認してみます。

[root@c1 ~]# vgdisplay -v
Finding all volume groups
Finding volume group "VolGroup00"
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 13.84 GB
PE Size 32.00 MB
Total PE 443
Alloc PE / Size 188 / 5.88 GB
Free PE / Size 255 / 7.97 GB
VG UUID JbYi1a-uXuN-H9gb-tHka-4nqW-JKnf-tcQ0o5

--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID 4Ob3hN-VeSd-tIuO-AeDN-FRCa-JHH9-rlQiK2
LV Write Access read/write
LV Status available
# open 1
LV Size 4.88 GB
Current LE 156
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:0

--- Logical volume ---
LV Name /dev/VolGroup00/LogVol01
VG Name VolGroup00
LV UUID L0pn6g-R44S-ildG-rjts-7L3j-5dkn-NLSu0O
LV Write Access read/write
LV Status available
# open 1
LV Size 1.00 GB
Current LE 32
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:1

--- Physical volumes ---
PV Name /dev/sda2
PV UUID DFwi4T-xS3b-Q70Q-OofC-IbKq-Y0ga-h2kVOS
PV Status allocatable
Total PE / Free PE 188 / 0

PV Name /dev/sdb1
PV UUID H2UESi-01ZR-uecI-W9j0-Db5i-zFy1-3a1Yeq
PV Status allocatable
Total PE / Free PE 255 / 255

[root@c1 ~]#

一番最後に追加されているのがわかります。

⑤ 論理ボリュームの拡張を行います。
vgdisplay -v で表示される下記の情報を参考にします。
元々は、「Total PE」=「Alloc PE」が188だったのですが、追加をしたことにより、Free PEが255に増えておりTotal PEが443になっていることがわかります。

追加前
Total PE 188
Alloc PE / Size 188 / 5.88 GB
Free PE / Size 0 / 0

追加後
Total PE 443
Alloc PE / Size 188 / 5.88 GB
Free PE / Size 255 / 7.97 GB

今回は全ての空きスペースを論理ボリュームに割り当てることにします。
拡張サイズを測るために、Total PEを指定してlvextendを実行してみます。
(このあたりは正しい計算の仕方があるはずですが、試行錯誤しながらやってしまいました。)

[root@c1 ~]# lvextend -l 443 /dev/VolGroup00/LogVol00
Extending logical volume LogVol00 to 13.84 GB
Insufficient free space: 188 extents needed, but only 156 available

32(188 - 156) extents 不足しているとのことなので、411を指定して再度実行してみます。

[root@c1 ~]# lvextend -l 411 /dev/VolGroup00/LogVol00
Extending logical volume LogVol00 to 12.84 GB
Logical volume LogVol00 successfully resized

増えているかどうか確認してみます。

[root@c1 ~]# vgdisplay -v
Finding all volume groups
Finding volume group "VolGroup00"
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 8
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 13.84 GB
PE Size 32.00 MB
Total PE 443
Alloc PE / Size 443 / 13.84 GB
Free PE / Size 0 / 0
VG UUID JbYi1a-uXuN-H9gb-tHka-4nqW-JKnf-tcQ0o5

--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID 4Ob3hN-VeSd-tIuO-AeDN-FRCa-JHH9-rlQiK2
LV Write Access read/write
LV Status available
# open 1
LV Size 12.84 GB   <-- この部分が増えています。
Current LE 411
Segments 2
Allocation inherit
Read ahead sectors 0
Block device 253:0

--- Logical volume ---
LV Name /dev/VolGroup00/LogVol01
VG Name VolGroup00
LV UUID L0pn6g-R44S-ildG-rjts-7L3j-5dkn-NLSu0O
LV Write Access read/write
LV Status available
# open 1
LV Size 1.00 GB
Current LE 32
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:1

--- Physical volumes ---
PV Name /dev/sda2
PV UUID DFwi4T-xS3b-Q70Q-OofC-IbKq-Y0ga-h2kVOS
PV Status allocatable
Total PE / Free PE 188 / 0

PV Name /dev/sdb1
PV UUID H2UESi-01ZR-uecI-W9j0-Db5i-zFy1-3a1Yeq
PV Status allocatable
Total PE / Free PE 255 / 0

[root@c1 ~]#
⑥ アンマウントせずにファイルシステムを拡張させます。
まずは、パーティションの状態を確認します。

[root@c1 ~]# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00 4.8G  4.3G 213M 96% /
/dev/sda1             99M 11M 83M 12% /boot
tmpfs              189M 0 189M 0% /dev/shm
[root@c1 ~]#

次にresize2fs を利用して拡張の反映を動的に行います。

[root@c1 ~]# resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 3366912 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 3366912 blocks long.

パーティションの状態を再度確認してみます。

[root@c1 ~]# df -h
Filesystem           サイズ 使用 残り 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00 13G  4.3G 7.6G 37%  /
/dev/sda1            99M  11M  83M 12%  /boot
tmpfs              189M  0  189M 0%   /dev/shm
[root@c1 ~]#

無事に空き容量が増え、作業は完了です。


参考サイト http://memo.blogdns.net/lvm.html
参考サイト http://pc.watanet.com/lab/homesvr/linux/lvm_resize/lvm_resize.html