UFS gmirror and gstripe slower than single SSD disk

So my 18-year old Areca hardware RAID card finally died. (I was prepared, I got backups).

This time I decided to build my file server with software raid only. (And use SSD-s).

The problem is the speed is not quite what I expected.

I am using RAID 1+0

I have 5x8TB and 10x4TB disks.

4TB disks are in pairs of gstripe and then mirrored with 8TB disks. And then that all in one big gstripe:
(systems disks not included here)

Code:
# gmirror status
         Name    Status  Components
    mirror/k1  COMPLETE  da0 (ACTIVE)
                         stripe/liit1 (ACTIVE)
    mirror/k2  COMPLETE  da1 (ACTIVE)
                         stripe/liit2 (ACTIVE)
    mirror/k3  COMPLETE  da2 (ACTIVE)
                         stripe/liit3 (ACTIVE)
    mirror/k4  COMPLETE  da3 (ACTIVE)
    mirror/k5  COMPLETE  da4 (ACTIVE)

# gstripe status
        Name  Status  Components
stripe/liit1      UP  ada3
                      da5
stripe/liit2      UP  ada5
                      da6
stripe/liit3      UP  ada7
                      da7
 stripe/suur      UP  mirror/k4
                      mirror/k5
                      mirror/k1
                      mirror/k2
                      mirror/k3

But that all big gstripe gives me about same read speed as single disk:

Code:
# diskinfo -t stripe/suur
stripe/suur
        512             # sectorsize
        40007816089600  # mediasize in bytes (36T)
        78140265800     # mediasize in sectors
        4096            # stripesize
        0               # stripeoffset
        No              # TRIM/UNMAP support
        Unknown         # Rotation rate in RPM

Seek times:
        Full stroke:      250 iter in   0.055887 sec =    0.224 msec
        Half stroke:      250 iter in   0.042207 sec =    0.169 msec
        Quarter stroke:   500 iter in   0.074149 sec =    0.148 msec
        Short forward:    400 iter in   0.058676 sec =    0.147 msec
        Short backward:   400 iter in   0.067298 sec =    0.168 msec
        Seq outer:       2048 iter in   0.143136 sec =    0.070 msec
        Seq inner:       2048 iter in   0.143004 sec =    0.070 msec

Transfer rates:
        outside:       102400 kbytes in   0.228471 sec =   448197 kbytes/sec
        middle:        102400 kbytes in   0.216937 sec =   472026 kbytes/sec
        inside:        102400 kbytes in   0.166122 sec =   616414 kbytes/sec

# diskinfo -t da4
da4
        512             # sectorsize
        8001563222016   # mediasize in bytes (7.3T)
        15628053168     # mediasize in sectors
        0               # stripesize
        0               # stripeoffset
        972801          # Cylinders according to firmware.
        255             # Heads according to firmware.
        63              # Sectors according to firmware.
        ATA Samsung SSD 870     # Disk descr.
        S5SSNF0R901312J         # Disk ident.
        Yes             # TRIM/UNMAP support
        0               # Rotation rate in RPM
        Not_Zoned       # Zone Mode

Seek times:
        Full stroke:      250 iter in   0.012770 sec =    0.051 msec
        Half stroke:      250 iter in   0.011183 sec =    0.045 msec
        Quarter stroke:   500 iter in   0.021915 sec =    0.044 msec
        Short forward:    400 iter in   0.017358 sec =    0.043 msec
        Short backward:   400 iter in   0.020292 sec =    0.051 msec
        Seq outer:       2048 iter in   0.054629 sec =    0.027 msec
        Seq inner:       2048 iter in   0.053259 sec =    0.026 msec

Transfer rates:
        outside:       102400 kbytes in   0.215702 sec =   474729 kbytes/sec
        middle:        102400 kbytes in   0.207632 sec =   493180 kbytes/sec
        inside:        102400 kbytes in   0.207143 sec =   494344 kbytes/sec

# diskinfo -t mirror/k5
mirror/k5
        512             # sectorsize
        8001563221504   # mediasize in bytes (7.3T)
        15628053167     # mediasize in sectors
        0               # stripesize
        0               # stripeoffset
        Yes             # TRIM/UNMAP support
        Unknown         # Rotation rate in RPM

Seek times:
        Full stroke:      250 iter in   0.014900 sec =    0.060 msec
        Half stroke:      250 iter in   0.012241 sec =    0.049 msec
        Quarter stroke:   500 iter in   0.023651 sec =    0.047 msec
        Short forward:    400 iter in   0.018956 sec =    0.047 msec
        Short backward:   400 iter in   0.022050 sec =    0.055 msec
        Seq outer:       2048 iter in   0.061932 sec =    0.030 msec
        Seq inner:       2048 iter in   0.061643 sec =    0.030 msec

Transfer rates:
        outside:       102400 kbytes in   0.217632 sec =   470519 kbytes/sec
        middle:        102400 kbytes in   0.210079 sec =   487436 kbytes/sec
        inside:        102400 kbytes in   0.211576 sec =   483987 kbytes/sec

# diskinfo -t ada7
ada7
        512             # sectorsize
        4096805658624   # mediasize in bytes (3.7T)
        8001573552      # mediasize in sectors
        0               # stripesize
        0               # stripeoffset
        7938069         # Cylinders according to firmware.
        16              # Heads according to firmware.
        63              # Sectors according to firmware.
        4TB SATA 2.5 SSD        # Disk descr.
        2024102816000108        # Disk ident.
        Yes             # TRIM/UNMAP support
        0               # Rotation rate in RPM
        Not_Zoned       # Zone Mode

Seek times:
        Full stroke:      250 iter in   0.034545 sec =    0.138 msec
        Half stroke:      250 iter in   0.065941 sec =    0.264 msec
        Quarter stroke:   500 iter in   0.124298 sec =    0.249 msec
        Short forward:    400 iter in   0.105638 sec =    0.264 msec
        Short backward:   400 iter in   0.099888 sec =    0.250 msec
        Seq outer:       2048 iter in   0.078301 sec =    0.038 msec
        Seq inner:       2048 iter in   0.046663 sec =    0.023 msec

Transfer rates:
        outside:       102400 kbytes in   0.487445 sec =   210075 kbytes/sec
        middle:        102400 kbytes in   0.568197 sec =   180219 kbytes/sec
        inside:        102400 kbytes in   0.267658 sec =   382578 kbytes/sec

# diskinfo -t ada5
ada5
        512             # sectorsize
        4000787030016   # mediasize in bytes (3.6T)
        7814037168      # mediasize in sectors
        0               # stripesize
        0               # stripeoffset
        7752021         # Cylinders according to firmware.
        16              # Heads according to firmware.
        63              # Sectors according to firmware.
        Samsung SSD 870 EVO 4TB # Disk descr.
        S6BCNF0W302128X # Disk ident.
        id1,enc@n3061686369656d30/type@0/slot@6/elmdesc@Slot_05 # Physical path
        Yes             # TRIM/UNMAP support
        0               # Rotation rate in RPM
        Not_Zoned       # Zone Mode

Seek times:
        Full stroke:      250 iter in   0.026466 sec =    0.106 msec
        Half stroke:      250 iter in   0.026360 sec =    0.105 msec
        Quarter stroke:   500 iter in   0.049068 sec =    0.098 msec
        Short forward:    400 iter in   0.040180 sec =    0.100 msec
        Short backward:   400 iter in   0.040070 sec =    0.100 msec
        Seq outer:       2048 iter in   0.034423 sec =    0.017 msec
        Seq inner:       2048 iter in   0.034204 sec =    0.017 msec

Transfer rates:
        outside:       102400 kbytes in   0.202335 sec =   506091 kbytes/sec
        middle:        102400 kbytes in   0.202415 sec =   505891 kbytes/sec
        inside:        102400 kbytes in   0.202378 sec =   505984 kbytes/sec

# diskinfo -t stripe/liit1
stripe/liit1
        512             # sectorsize
        8001574051840   # mediasize in bytes (7.3T)
        15628074320     # mediasize in sectors
        4096            # stripesize
        0               # stripeoffset
        No              # TRIM/UNMAP support
        Unknown         # Rotation rate in RPM

Seek times:
        Full stroke:      250 iter in   0.056910 sec =    0.228 msec
        Half stroke:      250 iter in   0.334056 sec =    1.336 msec
        Quarter stroke:   500 iter in   0.369228 sec =    0.738 msec
        Short forward:    400 iter in   0.040594 sec =    0.101 msec
        Short backward:   400 iter in   0.040107 sec =    0.100 msec
        Seq outer:       2048 iter in   0.323392 sec =    0.158 msec
        Seq inner:       2048 iter in   0.049658 sec =    0.024 msec

Transfer rates:
        outside:       102400 kbytes in   0.730137 sec =   140248 kbytes/sec
        middle:        102400 kbytes in   0.773519 sec =   132382 kbytes/sec
        inside:        102400 kbytes in   0.289748 sec =   353411 kbytes/sec

diskinfo -t mirror/k1
mirror/k1
        512             # sectorsize
        8001563221504   # mediasize in bytes (7.3T)
        15628053167     # mediasize in sectors
        4096            # stripesize
        0               # stripeoffset
        Yes             # TRIM/UNMAP support
        Unknown         # Rotation rate in RPM

Seek times:
        Full stroke:      250 iter in   0.040802 sec =    0.163 msec
        Half stroke:      250 iter in   0.022701 sec =    0.091 msec
        Quarter stroke:   500 iter in   0.041262 sec =    0.083 msec
        Short forward:    400 iter in   0.335174 sec =    0.838 msec
        Short backward:   400 iter in   0.354776 sec =    0.887 msec
        Seq outer:       2048 iter in   0.446335 sec =    0.218 msec
        Seq inner:       2048 iter in   0.417780 sec =    0.204 msec

Transfer rates:
        outside:       102400 kbytes in   0.701626 sec =   145947 kbytes/sec
        middle:        102400 kbytes in   0.737018 sec =   138938 kbytes/sec
        inside:        102400 kbytes in   0.576959 sec =   177482 kbytes/sec

Should I replace internal (4+4) gstripe with gconcat instead, to get more speed?

Also, does it matter, that gmirror seems to have TRIM support, but gstripe does not? Seems gconcat does not support TRIM either.

Any other tips?
 
Back
Top