Moin,
ich wollte nur mal mitteilen, das ich eine Samsung SM951 NVMe in meinem bar-metal-OmniOS v11 r151019 (vorerst) erfolgreich integriert hab.
@Samsung NVMe
hab nach den
allerersten erfolgreichen Tests nun mal ein bissl rumgespielt und einen scrub gemacht - und siehe da:
Code:
pool: test1
state: DEGRADED
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: http://illumos.org/msg/ZFS-8000-8A
scan: scrub repaired 20K in 0h2m with 2 errors on Thu Jun 9 18:47:22 2016
config:
NAME STATE READ WRITE CKSUM
test1 DEGRADED 0 0 65
c13t1d0p1 DEGRADED 0 0 169 too many errors
errors: 9 data errors, use '-v' for a list
Das gefällt mir ja mal gar nicht!
Das Problem hatte wohl aber schon jemand gelöst mit einer Umstellung des CHKSUM-Algorithmus...
Also...
Das mit der Umstellung der Checksummenbildung war wohl nur ein Workaround und ist so nicht zu empfehlen.
Die bessere Begründung gibt es vom Programmierer der NVMe-Treiber persönlich:
Samsung SSD SM951-NVMe shows checksum errors
Aber jetzt kommen die nächsten Probleme...
Wie bringe ich eine NVMe dazu mit 4K also ashift=12 zu arbeiten?
Normalerweise unter OmniOS über die sd.conf. Das klappt aber (zumindest bei mir) nicht, da hierfür Vendor und Model des PCI-Gerätes benötigt werden. Und dies im Format Vendor=8 Zeichen, Model=16 Zeichen. Die Samsung NVMe liefert mir aber mit allen Tools als Vendor="" und als Model="SAMSUNG MZVPV256HDGL-00000". Hmm, also einmal nichts und einmal mehr als 16... Alle Versuche diese Werte in irgendeiner Weise einzutragen scheiterten kläglich!
Wenn also hier jemand die Lösung hat - her damit!
Also was nun?
Man nehme ein Fremd-Betriebssystem (Nicht-Illumos) mit kompatiblem ZFS und erstelle hiermit den Pool, da hier die 4K-Implementierung nicht über die sd.conf läuft.
Also flugs ZFSGuru von CD gestartet -Absturz beim Booten!
FreeNAS installiert - fein. Neustart - Absturz beim Booten!
Kaffee- und Nachdenkpause...
Aha, Infinibandkarte entfernt - nun startet es...
FreeNAS gestartet - nirgends meine NVMe-Disk zu finden...
ZFSGuru gestartet - nirgends meine NVMe-Disk zu finden...
Futter-, Kaffee- und Nachdenkpause...
OmniOS gestartet - NVMe-Pool erstellt - ZFS-Guru gestartet - ahhh, da ist ja mein Pool...
Eine NVMe-Disk ist trotzdem nicht zu sehen...
Okay, ssh aktiviert und darüber rein...
So und nun kopier ich meine Notizen platt hier rein...:
Code:
basiert auf:
https://forums.freebsd.org/threads/44197/
(ähnliches skript: http://www.bsdforen.de/threads/funktionierende-anleitung-f%C3%BCr-freebsd-9-mit-zfs.28548/#post-245580)
umgesetzt mit:
Powered by ZFSguru version 0.3.1
Running official system image 11.0.006 featuring FreeBSD 11.0-CURRENT with ZFS v5000.
Running Root-on-ZFS distribution.
-keine NVMe als Disk in GUI sichtbar
-Versuch sichtbar machen mit: /etc/loader.conf (o.s.ä.?) - kein Erfolg
-da bei NVMe kein Overprovision per HPA möglich --> ZFS-Partition und Leer-Partition!
-Achtung!: 4K-align
gpart delete -i x nvd0 (falls vorhanden)
gpart destroy nvd0 (falls vorhanden)
[root@zfsguru ~]# gpart create -s gpt nvd0
[root@zfsguru ~]# gpart add -t freebsd-zfs -a4k -b1m -s201g nvd0
nvd0p1 added
[root@zfsguru ~]# gpart show /dev/nvd0
=> 34 500118125 nvd0 GPT (238G)
34 2014 - free - (1.0M)
2048 421527552 1 freebsd-zfs (201G)
421529600 78588559 - free - (37G)
[root@zfsguru ~]# gpart add -t freebsd-zfs -a4k -b421529600 -s37g nvd0
nvd0p2 added
[root@zfsguru ~]# gpart show /dev/nvd0
=> 34 500118125 nvd0 GPT (238G)
34 2014 - free - (1.0M)
2048 421527552 1 freebsd-zfs (201G)
421529600 77594624 2 freebsd-zfs (37G)
499124224 993935 - free - (485M)
gnop create -S4k nvd0p1
zpool create nvp1 /dev/nvd0p1.nop
[root@zfsguru ~]# zdb -C nvp1
MOS Configuration:
version: 5000
name: 'nvp1'
state: 0
txg: 4
pool_guid: 11157571964578607008
hostid: 1424570256
hostname: 'zfsguru.bsd'
vdev_children: 1
vdev_tree:
type: 'root'
id: 0
guid: 11157571964578607008
create_txg: 4
children[0]:
type: 'disk'
id: 0
guid: 13541528155494127618
path: '/dev/nvd0p1.nop'
whole_disk: 1
metaslab_array: 34
metaslab_shift: 31
ashift: 12
asize: 215817388032
is_log: 0
create_txg: 4
features_for_read:
com.delphix:hole_birth
com.delphix:embedded_data
reboot
zpool export -f nvp1
boot OmniOS
import über napp-it
export über napp-it
boot ZFSguru
zpool import -d /dev -f 11157571964578607008
[root@zfsguru ~]# zdb -C nvp1
MOS Configuration:
version: 5000
name: 'nvp1'
state: 0
txg: 193
pool_guid: 11157571964578607008
hostid: 1424570256
hostname: 'zfsguru.bsd'
vdev_children: 1
vdev_tree:
type: 'root'
id: 0
guid: 11157571964578607008
children[0]:
type: 'disk'
id: 0
guid: 13541528155494127618
path: '/dev/nvd0p1'
phys_path: '/pci@0,0/pci8086,8c18@1c,4/pci144d,a801@0/blkdev@1,0:a'
whole_disk: 1
metaslab_array: 34
metaslab_shift: 31
ashift: 12
asize: 215817388032
is_log: 0
create_txg: 4
features_for_read:
com.delphix:hole_birth
com.delphix:embedded_data
boot OmniOS
zpool import 11157571964578607008 nvp1
root@san-01:/root# zdb -C nvp1
MOS Configuration:
version: 5000
name: 'nvp1'
state: 0
txg: 261
pool_guid: 11157571964578607008
hostid: 758204304
hostname: 'san-01'
com.delphix:has_per_vdev_zaps
vdev_children: 1
vdev_tree:
type: 'root'
id: 0
guid: 11157571964578607008
children[0]:
type: 'disk'
id: 0
guid: 13541528155494127618
path: '/dev/dsk/c13t1d0s0'
devid: 'id1,kdev@E144D-SAMSUNG_MZVPV256HDGL-00000______________-S1XWNYAH501288______-1/a'
phys_path: '/pci@0,0/pci8086,8c18@1c,4/pci144d,a801@0/blkdev@1,0:a'
whole_disk: 1
metaslab_array: 34
metaslab_shift: 31
ashift: 12
asize: 215817388032
is_log: 0
create_txg: 4
com.delphix:vdev_zap_leaf: 42
com.delphix:vdev_zap_top: 43
features_for_read:
com.delphix:hole_birth
com.delphix:embedded_data
zpool status
pool: nvp1
state: ONLINE
status: Some supported features are not enabled on the pool. The pool can
still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
the pool may no longer be accessible by software that does not support
the features. See zpool-features(5) for details.
scan: none requested
config:
NAME STATE READ WRITE CKSUM CAP Product /napp-it IOstat mess
nvp1 ONLINE 0 0 0
c13t1d0 ONLINE 0 0 0 256.1 GB S:0 H:0 T:0
errors: No known data errors
Daten schaufeln...
root@san-01:/root# zpool scrub nvp1
root@san-01:/root# zpool status -v
pool: nvp1
state: ONLINE
status: Some supported features are not enabled on the pool. The pool can
still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
the pool may no longer be accessible by software that does not support
the features. See zpool-features(5) for details.
scan: scrub repaired 0 in 0h0m with 0 errors on Fri Jun 10 23:56:10 2016
config:
NAME STATE READ WRITE CKSUM
nvp1 ONLINE 0 0 0
c13t1d0 ONLINE 0 0 0
errors: No known data errors
napp-it:
home Pools Features
Attention: Pools with features are not importable on systems without support for this feature!
Pool: nvp1:
Feature Value
pool version - (5000, Feature Flags)
zfs version 5
feature@spacemap_histogram active
feature@skein disabled
feature@sha512 disabled
feature@multi_vdev_crash_dump enabled
feature@lz4_compress active
feature@large_blocks enabled
feature@hole_birth active
feature@filesystem_limits enabled
feature@extensible_dataset enabled
feature@enabled_txg active
feature@empty_bpobj active
feature@embedded_data active
feature@edonr disabled
feature@bookmarks enabled
feature@async_destroy enabled
Pool: rpool:
Feature Value
pool version - (5000, Feature Flags)
zfs version 5
feature@spacemap_histogram active
feature@skein enabled
feature@sha512 enabled
feature@multi_vdev_crash_dump enabled
feature@lz4_compress active
feature@large_blocks enabled
feature@hole_birth active
feature@filesystem_limits enabled
feature@extensible_dataset enabled
feature@enabled_txg active
feature@empty_bpobj active
feature@embedded_data active
feature@edonr enabled
feature@bookmarks enabled
feature@async_destroy enabled
root@san-01:/root# zpool upgrade nvp1
This system supports ZFS pool feature flags.
Enabled the following features on 'nvp1':
sha512
skein
edonr
root@san-01:/root# zpool scrub nvp1
root@san-01:/root# zpool status -v
pool: nvp1
state: ONLINE
scan: scrub in progress since Sat Jun 11 00:04:39 2016
8,76G scanned out of 20,0G at 1,46G/s, 0h0m to go
0 repaired, 43,75% done
config:
NAME STATE READ WRITE CKSUM
nvp1 ONLINE 0 0 0
c13t1d0 ONLINE 0 0 0
errors: No known data errors
root@san-01:/root# zpool status -v
pool: nvp1
state: ONLINE
scan: scrub in progress since Sat Jun 11 00:04:39 2016
19,9G scanned out of 20,0G at 1,42G/s, 0h0m to go
0 repaired, 99,21% done
config:
NAME STATE READ WRITE CKSUM
nvp1 ONLINE 0 0 0
c13t1d0 ONLINE 0 0 0
errors: No known data errors
root@san-01:/root# zpool status -v
pool: nvp1
state: ONLINE
scan: scrub repaired 0 in 0h0m with 0 errors on Sat Jun 11 00:04:53 2016
config:
NAME STATE READ WRITE CKSUM
nvp1 ONLINE 0 0 0
c13t1d0 ONLINE 0 0 0
errors: No known data errors
So, nun war also nach einigen Tests alles fein!
Mich stört nur noch, dass im Napp-it-zpool-Status "c13t1d0" und nicht "c13t1d0p1" steht. Woran liegts?
Wenn jemand Hinweise, Optimierungen oder gar Ideen zur Vermeidung des ganzen Theaters hat - bitte hier veröffentlichen!
PS:
Hab nun erstmalig über 900MB/s bei Storage-vMotion kontiuierlich über mehrere Minuten gesehen... Und das ohne Optimierungen und NVMe noch im PCIe2-Slot auf nen Disk-stiped-Mirror...