From owner-freebsd-geom@FreeBSD.ORG Sun Aug 19 17:11:05 2007 Return-Path: Delivered-To: freebsd-geom@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4C4B616A420; Sun, 19 Aug 2007 17:11:05 +0000 (UTC) (envelope-from nork@FreeBSD.org) Received: from sakura.ninth-nine.com (sakura.ninth-nine.com [219.127.74.120]) by mx1.freebsd.org (Postfix) with ESMTP id BCC7013C48A; Sun, 19 Aug 2007 17:11:04 +0000 (UTC) (envelope-from nork@FreeBSD.org) Received: from nadesico.ninth-nine.com (nadesico.ninth-nine.com [219.127.74.122]) by sakura.ninth-nine.com (8.14.1/8.14.1/NinthNine) with SMTP id l7JGsOF0024019; Mon, 20 Aug 2007 01:54:24 +0900 (JST) (envelope-from nork@FreeBSD.org) Date: Mon, 20 Aug 2007 01:54:24 +0900 From: Norikatsu Shigemura To: freebsd-geom@FreeBSD.org Message-Id: <20070820015424.42677df2.nork@FreeBSD.org> X-Mailer: Sylpheed 2.4.4 (GTK+ 2.10.14; i386-portbld-freebsd6.2) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0.2 (sakura.ninth-nine.com [219.127.74.121]); Mon, 20 Aug 2007 01:54:24 +0900 (JST) Cc: freebsd-proliant@FreeBSD.org, freebsd-arch@FreeBSD.org Subject: Anyone, would you try to make GEOM_DDF1(4)? X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Aug 2007 17:11:05 -0000 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