2007/08/07

ZFSでハードディスクをフルに使えるようにする

2007/12/22 認識しなくなってしまったので削除
VMwareにインストールしたNexenta(OpenSolaris)で250GBのハードディスクを何故か半分くらいしか認識していなかったのですが、とりあえずなんとか250GB認識するようにはなりました。

かなり怪しいですけど。


問題が発生しているのは250GBのハードディスクではなく、Windows NTFSで使用している150GBくらいのハードディスクをVMwareのNexentaで認識させたときも同じで、どちらも137.44GBしか認識しておりませんでした。
137.44GBをキーワードに検索すると、似たような現象が見つかります。


調べながら色々やってみました。
250GBのハードディスクを使えるようにすることが出来たのは、多分下記の手順が効いているのだと思います。
もしかしたら下記の手段が本当に効果あった訳では無いのかもしれません

忘れないように一応書いておきますが、
下記の手順が本当に正しいのかどうか分かりませんし、今後重大な問題が発生するかもしれません

真似しないでください

○ ディスクのラベルを削除
こちらを参考にディスクのラベルを削除しました。

root@julie:~# dd if=/dev/zero of=/dev/rdsk/c1d1 bs=1b count=16


○ format コマンドでスライスを作成
formatコマンド中でcylinder数(30282)の指定を行います。
多分cylinder数の指定がキモだと思います。

cylinder数が30282というのは、このハードディスクをLinux(Debian 4.0)につなげてfdiskを実行した際に表示される内容から判断しました。

以下のログで行っている作業は、認識している領域全て(137.44GBくらい)のパーティションをfdiskで作成してから行いました。
確かpartition(pa)サブコマンド時に"fdiskを最初に実行しろ"というようなエラーが出たと記憶しています。
以下の作業の途中でfdiskを行っても良かったのかもしれませんが、それだとcylinder数(30282)の指定の後でfdiskを行うことになるため、気が進まなかったので以下のログの作業の前に行いました。

気が進まなかった理由は、"なんとなく"です。

root@julie:~# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
0. c0d0
/pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0
1. c0d1
/pci@0,0/pci-ide@7,1/ide@0/cmdk@1,0
2. c1d1
/pci@0,0/pci-ide@7,1/ide@1/cmdk@1,0
Specify disk (enter its number): 2



AVAILABLE DRIVE TYPES:
0. DEFAULT
1. other
Specify disk type (enter its number): 1
Enter number of data cylinders: 30282
Enter number of alternate cylinders[2]:
Enter number of physical cylinders[30284]:
Enter number of heads: 256
Enter number of data sectors/track: 63
Enter rpm of drive[3600]: 7200
Enter format time[default]:
Enter cylinder skew[default]:
Enter track skew[default]:
Enter tracks per zone[default]:
Enter alternate tracks[default]:
Enter alternate sectors[default]:
Enter cache control[default]:
Enter prefetch threshold[default]:
Enter minimum prefetch[default]:
Enter maximum prefetch[default]:
Enter disk type name (remember quotes): 250GB
selecting c1d1
No current partition list
No defect list found
[disk formatted, no defect list found]


FORMAT MENU:
disk - select a disk
type - select (define) a disk type
partition - select (define) a partition table
current - describe the current disk
format - format and analyze the disk
fdisk - run the fdisk program
repair - repair a defective sector
show - translate a disk address
label - write label to the disk
analyze - surface analysis
defect - defect list management
backup - search for backup labels
verify - read and display labels
save - save new disk/partition definitions
volname - set 8-character volume name
! - execute , then return
quit
format> type


AVAILABLE DRIVE TYPES:
0. DEFAULT
1. 250GB
2. other
Specify disk type (enter its number)[1]:
selecting c1d1
Controller working list found
[disk formatted, defect list found]
format> pa


PARTITION MENU:
0 - change `0' partition
1 - change `1' partition
2 - change `2' partition
3 - change `3' partition
4 - change `4' partition
5 - change `5' partition
6 - change `6' partition
7 - change `7' partition
select - select a predefined table
modify - modify a predefined partition table
name - name the current table
print - display the current table
label - write partition map and label to the disk
! - execute , then return
quit
partition> p
Current partition table (original):
Total disk cylinders available: 16640 + 2 (reserved cylinders)

Part Tag Flag Cylinders Size Blocks
0 root wm 3 - 19 133.88MB (17/0/0) 274176
1 swap wu 20 - 36 133.88MB (17/0/0) 274176
2 backup wu 0 - 30283 232.90GB (30284/0/0) 488420352
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 usr wm 37 - 30281 232.60GB (30245/0/0) 487791360
7 unassigned wm 0 0 (0/0/0) 0
8 boot wu 0 - 0 7.88MB (1/0/0) 16128
9 alternates wm 1 - 2 15.75MB (2/0/0) 32256

format> label
Ready to label disk, continue? yes

スライス6に232.60GB割り当てられたようなので、zpoolではディスク全体ではなくスライス6をZFS領域に割り当てます。
root@julie:~# zpool create -f share c1d1s6


上記の手順を踏み、さらにzfsコマンドで追加した状態でdfコマンドを実行した結果は下記のようになりました。
root@julie:~# df -h
Filesystem size used avail capacity Mounted on

〜 省略 〜

share 228G 21K 228G 1% /share
share/mail 228G 186M 228G 1% /share/mail
share/share 228G 21K 228G 1% /share/share
share/share/important
228G 18K 228G 1% /share/share/important
share/share/pub 228G 287M 228G 1% /share/share/pub


iostatコマンドでは相変わらず137.44GBしか認識されていません。
かなり危険な香りがします。

root@julie:~# iostat -En
c0d0 Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Model: VMware Virtual Revision: Serial No: 000000000000000 Size: 10.74GB <10737377280>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
Illegal Request: 0
c0d1 Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Model: VMware Virtual Revision: Serial No: 010000000000000 Size: 137.44GB <137437655040>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
Illegal Request: 0
c1d1 Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Model: VMware Virtual Revision: Serial No: 110000000000000 Size: 137.44GB <137437655040>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
Illegal Request: 0
c1t0d0 Soft Errors: 2 Hard Errors: 23 Transport Errors: 0
Vendor: Generic Product: DVD-ROM Revision: 1.0 Serial No:
Size: 0.00GB <0>
Media Error: 0 Device Not Ready: 23 No Device: 0 Recoverable: 0
Illegal Request: 2 Predictive Failure Analysis: 0

0 件のコメント: