Anyone, would you try to make GEOM_DDF1(4)?
Norikatsu Shigemura
nork at FreeBSD.org
Sun Aug 19 10:11:05 PDT 2007
Hi GEOM Developers.
I'm using HP Proliant DL140G3 with Adaptec HostRAID (SATA).
But I couldn't make FreeBSD 6.2-R install CD probe RAID1, so
I researched DL140G3's RAID system(Software RAID). As the
result, I understood that Adaptec HostRAID supports DDF
format[*1].
[*1] http://www.snia.org/standards/DDFv1_00.pdf
I was trying to make geom_ddf1(4), but I couldn't make it,
it's too hard for me:-(. So, anyone, would you try to
make geom_ddf1(4)? Of course, RAID1 support only OK! :D
I have two real DDF1 data from configurated SATAs(/dev/ad4
and /dev/ad6 are RAID1 mirrored) like following way[*2][*3].
And I confirmed no configured SATAs filled all NUL(0x00) on
DDF1 Anchor.
[*2] http://people.freebsd.org/~nork/DDF1/ad4-last6k.img
http://people.freebsd.org/~nork/DDF1/ad6-last6k.img
*NOTE* Please restructure ad?.img from ad?-last6k.img
I made a test program[*4]. I got a result of /dev/ad4.
Please see also following[*5].
[*4] http://people.freebsd.org/~nork/DDF1/ddf1.h
http://people.freebsd.org/~nork/DDF1/ddf1_test.c
[*3]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
In real system (RAID1 configured):
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# geom disk list ad4
:
Mediasize: 80026361856 (75G)
:
# echo 80026361856/512-65536 | bc
156235952
# dd if=/dev/ad4 bs=512 skip=156235952 | ssh ... 'cat > ad4-last32m.img'
65536+0 records in
:
# dd if=/dev/ad6 bs=512 skip=156235952 | ssh ... 'cat > ad6-last32m.img'
65536+0 records in
:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
In my system:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# hexdump -C ad4-last32m.img | head
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01ffe800 11 de 11 de 50 a0 0d fc 64 6f c1 3a 86 80 82 26 |..P...do:...&|
~~~~~~~~
:
# echo `printf %d/512 0x01ffe800` | bc
65524
# dd if=ad4-last32m.img of=ad4-last6k bs=512 skip=65524
12+0 records in
12+0 records out
6144 bytes transferred in 0.000361 secs (17021006 bytes/sec)
# dd if=ad6-last32m.img of=ad6-last6k bs=512 skip=65524
12+0 records in
12+0 records out
6144 bytes transferred in 0.000361 secs (17021006 bytes/sec)
# echo 156235952+65524 | bc
156301476
# dd if=ad4-last6k.img bs=512 seek=156235952 of=ad4.img
# dd if=ad6-last6k.img bs=512 seek=156235952 of=ad6.img
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[*5]
------------------------------------
sizeof struct ddf1_ddf_header = 512
------------------------------------
Signature = 0xde11de11
CRC = 0x77802615
DDF_Header_GUID = 64 6f c1 3a 86 80 82 26 64 6f c1 3a b0 74 c1 3a 18 79 c1 3a ff ff ff ff
DDF_rev = 30 32 2e 30 30 2e 30 30
Sequence_Number = -1
Timestamp = -1
Open_Flag = 0xff
Foreign_Flag = 0xff
Disk_Grouping = 255
Primary_Header_LBA = 0x000000000950f8a4 (156301476)
Secondary_Header_LBA = 0xffffffffffffffff (18446744073709551615)
Header_Type = 0x0
Workspace_Length = 32768
Workspace_LBA = 0x00000000095078a4 (156268708)
Max_PD_Entries = 15
Max_VD_Entries = 4
Max_Partitions = 1
Configuration_Record_Length = 2
Max_Primary_Element_Entries = 65535
Controller_Data_Section = 1
Controller_Data_Length = 1
Physical_Disk_Records_Section = 2
Physical_Disk_Records_Length = 2
Virtual_Disk_Records_Section = 4
Virtual_Disk_Records_Length = 1
Configuration_Records_Section = 5
Configuration_Records_Length = 4
Physical_Disk_Data_Section = 9
Physical_Disk_Data_Length = 1
BBM_Log_Section = -1
BBM_Log_Length = 0
Diagnostic_Space = -1
Diagnostic_Space_Length = 0
Vendor_Specific_Logs_Section = 10
Vendor_Specific_Logs_Section_Length = 1
------------------------------------
sizeof struct ddf1_controller_data = 512
------------------------------------
Signature = 0xad111111
CRC = 0x8be2d4cc
Controller_GUID = 64 6f c1 3a b0 74 c1 3a 18 79 c1 3a 7a 7d c1 3a 41 44 50 54 ff ff ff ff
Controller_Type_Vendor_ID = 0x8086
Controller_Type_Device_ID = 0x2682
Controller_Type_Sub_Vendor_ID = 0x0000
Controller_Type_Sub_Device_ID = 0x0000
------------------------------------
sizeof struct ddf1_phsical_disk_records = 64
------------------------------------
Signature = 0x22222222
CRC = 0x8da47ea5
Populated_PDEs = 2
Max_PDE_Supported = 15
------------------------------------
*sizeof struct ddf1_physical_disk_entries = 64
------------------------------------
PD_GUID = 20 20 20 20 20 20 20 20 20 20 20 20 39 4c 52 33 4c c6 95 5a ff ff ff ff
PD_Reference = 1839256256
PD_Type = 0x2
PD_State = 0x1
Configured_Size = 155987856
Path_Information = 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff
------------------------------------
*sizeof struct ddf1_physical_disk_entries = 64
------------------------------------
PD_GUID = 20 20 20 20 20 20 20 20 20 20 20 20 39 4c 52 33 cc c7 95 5a ff ff ff ff
PD_Reference = 1839269174
PD_Type = 0x2
PD_State = 0x1
Configured_Size = 155987856
Path_Information = 01 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff
------------------------------------
sizeof struct ddf1_virtual_disk_records = 64
------------------------------------
Signature = 0xdddddddd
CRC = 0xdae2a21a
Populated_VDEs = 1
Max_VDE_Supported = 4
------------------------------------
*sizeof struct ddf1_virtual_disk_entries = 64
------------------------------------
VD_GUID = 40 35 30 5a 86 80 82 26 20 20 20 20 20 20 20 20 e6 58 a0 6d 3a 35 4a 45
VD_Number = 0
VD_Type = 0xffffffff
VD_State = 0x0
Init_State = 0x2
VD_Name = DDF1-MIRROR
------------------------------------
sizeof struct ddf1_virtual_disk_configuration_record = 512
------------------------------------
Signature = 0xeeeeeeee
CRC = 0x82e01b58
VD_GUID = 40 35 30 5a 86 80 82 26 20 20 20 20 20 20 20 20 e6 58 a0 6d 3a 35 4a 45
Timestamp = 2
Sequence_Number = 2
Primary_Element_Count = 2
Strip_Size(Stripe_Size) = 7
Primary_RAID_Level = 1
RAID_Level_Qualifier = 0
Secondary_Element_Count = 1
Secondary_Element_Seq = 0
Secondary_RAID_Level = 255
Block_Count = 155987856
Size = 155987856
Cache_Policies_And_Parameters = 0x0000000000000000
BG_Rate = 16
------------------------------------
sizeof struct ddf1_physical_disk_data = 512
------------------------------------
Signature = 0x33333333
CRC = 0xe46196d5
PD_GUID = 20 20 20 20 20 20 20 20 20 20 20 20 39 4c 52 33 c6 49 61 5a ff ff ff ff
PD_Reference = 1839256256
Forced_Ref_Flag = 0xff
Forced_PD_GUID_Flag = 0x00
More information about the freebsd-proliant
mailing list