View Single Post
Old 1st August 2013
J65nko J65nko is offline
Administrator
 
Join Date: May 2008
Location: Budel - the Netherlands
Posts: 4,125
Default

Two weeks ago I created a Makefile to automate the ZFS setup for 2 disks as described here, but adapted the procedure to align to 4K sectors disks.

A few hours ago I tested this with 9.2-BETA2. Some details ......

Code:
 FreeBSD  9.2-BETA2 FreeBSD 9.2-BETA2 #0 r253698: Sat Jul 27 18:22:20 UTC 2013   
root@bake.isc.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64

# zpool status
  pool: syspool
 state: ONLINE
  scan: none requested
config:

        NAME            STATE     READ WRITE CKSUM
        NAME            STATE     READ WRITE CKSUM
        syspool         ONLINE       0     0     0
          mirror-0      ONLINE       0     0     0
            gpt/disk_1  ONLINE       0     0     0
            gpt/disk_2  ONLINE       0     0     0

errors: No known data errors

# zpool list
NAME      SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
syspool  1.81T   712M  1.81T     0%  1.00x  ONLINE  -

# zfs listNAME                   USED  AVAIL  REFER  MOUNTPOINT
syspool               4.82G  1.78T   144K  none
syspool/ROOT           711M  1.78T   144K  none
syspool/ROOT/default   710M  1.78T   710M  legacy
syspool/swap          4.13G  1.78T    72K  -

# zdb -C syspool
MOS Configuration:
        version: 5000
        name: 'syspool'
        state: 0
        txg: 152
        pool_guid: 3438526185973838084
        hostid: 556313802
        hostname: ''
        vdev_children: 1
        vdev_tree:
            type: 'root'
            id: 0
            guid: 3438526185973838084
            children[0]:
                type: 'mirror'
                id: 0
                guid: 10481547726514786031
                metaslab_array: 33
                metaslab_shift: 34
                ashift: 12
                asize: 2000394125312
                is_log: 0
                create_txg: 4
                children[0]:
                    type: 'disk'
                    id: 0
                    guid: 13788062699240212125
                    path: '/dev/gpt/disk_1'
                    phys_path: '/dev/gpt/disk_1'
                    whole_disk: 1
                    create_txg: 4
                children[1]:
                    type: 'disk'
                    id: 1
                    guid: 6638123737697553782
                    path: '/dev/gpt/disk_2'
                    phys_path: '/dev/gpt/disk_2'
                    whole_disk: 1
                    create_txg: 4
        features_for_read:
The ashift 12 indicates that ZFS is using a 4K alignment. Of course you also need to align the partition(s) on a 4K (8 x 512) boundary:
Code:
#  gpart show ada1 ; gpart show ada2
=>        34  3907029101  ada1  GPT  (1.8T)
          34           6        - free -  (3.0k)
          40          88     1  freebsd-boot  (44k)
         128  3907029000     2  freebsd-zfs  (1.8T)
  3907029128           7        - free -  (3.5k)

=>        34  3907029101  ada2  GPT  (1.8T)
          34           6        - free -  (3.0k)
          40          88     1  freebsd-boot  (44k)
         128  3907029000     2  freebsd-zfs  (1.8T)
  3907029128           7        - free -  (3.5k)
diskinfo(8) shows that the drives I used are Advanced Format drives. These drives report a sector of 512 bytes, while actually they use sectors of 4096 bytes.
Code:
# diskinfo -v ada1 ; diskinfo -v ada2
ada1
        512             # sectorsize
        2000398934016   # mediasize in bytes (1.8T)
        3907029168      # mediasize in sectors
        4096            # stripesize
        0               # stripeoffset
        3876021         # Cylinders according to firmware.
        16              # Heads according to firmware.
        63              # Sectors according to firmware.
        S1E160MR        # Disk ident.

ada2
        512             # sectorsize
        2000398934016   # mediasize in bytes (1.8T)
        3907029168      # mediasize in sectors
        4096            # stripesize
        0               # stripeoffset
        3876021         # Cylinders according to firmware.
        16              # Heads according to firmware.
        63              # Sectors according to firmware.
        S1E15YPP        # Disk ident.
The 9.2-BETA2 dmesg(8) reports these drives as:
Code:
ada1 at ata3 bus 0 scbus1 target 0 lun 0
ada1: <ST2000DM001-1CH164 CC24> ATA-8 SATA 3.x device
ada1: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
ada1: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
ada1: quirks=0x1<4K>
ada1: Previously was known as ad6
ada2 at ata3 bus 0 scbus1 target 1 lun 0
ada2: <ST2000DM001-1CH164 CC24> ATA-8 SATA 3.x device
ada2: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
ada2: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
ada2: quirks=0x1<4K>
ada2: Previously was known as ad7
__________________
You don't need to be a genius to debug a pf.conf firewall ruleset, you just need the guts to run tcpdump

Last edited by J65nko; 1st August 2013 at 10:53 PM.
Reply With Quote