38 views
# Hardware Server PädNetz 2021 ## Mainboard ![](https://markdown.humboldt-ka.de/uploads/upload_15c6c6e9a5531ce9032f5cc904fc036e.png) ## Festplattenspeicher Beispielplatte unter dem Kühlkörper ![](https://markdown.humboldt-ka.de/uploads/upload_44b3fc255ff2cb19613c2b70f8e722ff.jpg) ### Gerätnamen ```console root@serverhost1:/rpool/ROOT# nvme list Node SN Model Namespace Usage Format FW Rev ---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- -------- /dev/nvme0n1 PK4620000104 XPG GAMMIX S50 1 2.00 TB / 2.00 TB 512 B + 0 B EGFM11.2 /dev/nvme1n1 7QH00RZ9 Seagate FireCuda 520 SSD ZP2000GM30002 1 2.00 TB / 2.00 TB 512 B + 0 B STNSC014 /dev/nvme2n1 7QH00SLV Seagate FireCuda 520 SSD ZP2000GM30002 1 2.00 TB / 2.00 TB 512 B + 0 B STNSC014 /dev/nvme3n1 7QH00RTP Seagate FireCuda 520 SSD ZP2000GM30002 1 2.00 TB / 2.00 TB 512 B + 0 B STNSC014 /dev/nvme4n1 7QH00WDX Seagate FireCuda 520 SSD ZP2000GM30002 1 2.00 TB / 2.00 TB 512 B + 0 B STNSC014 ``` ### Geschwindigkeitsmessungen #### Zusammenfassung der Ergebnisse mit dd unten: | Server | Serverhost (SSD) | Serverhost2 (SSD) | Serverhost2 (Raid) | Serverhost1 (neu) | |---------------------------------|------------------|-------------------|--------------------|-------------------| | hdparm read direct-I/O | ~400 | ~250 | ~450 | ~3000 | | /dev/zero | 329 | 44 | 30 | ~2000 | | /dev/urandom | 94 | 80 | ~60 | 62 | | /dev/urandom + Direct-I/O | 77 | 46 | 21 | 62 | | /dev/urandom + D-I/O + Sync-I/O | 60 | 28 | 15 | 60 | - Links: https://www.thomas-krenn.com/de/wiki/I/O_Performance_Benchmarking_Tools_im_%C3%9Cberblick - Nicht ideal: Alle NVMe-SSDs können 4400 MB/s, erreichen aber in dem PCI1e slot und beim zweiten M.2-Anschluss nicht diese Werte. ```console // alter Server 1 root@serverhost:~# hdparm -T -t --direct /dev/mapper/vghost-hostroot /dev/mapper/vghost-hostroot: Timing O_DIRECT disk reads: 1300 MB in 3.00 seconds = 432.97 MB/sec // alter Server 2 root@serverhost2:~# hdparm -T -t --direct /dev/sda2 /dev/sda2: Timing O_DIRECT disk reads: 782 MB in 3.00 seconds = 260.31 MB/sec // alter Server 2, RAID root@serverhost2:~# hdparm -T -t --direct /dev/sdb /dev/sdb: Timing O_DIRECT disk reads: 1384 MB in 3.00 seconds = 461.20 MB/sec // neuer Server, einzelne NVMe root@serverhost1:~# hdparm -t -T --direct /dev/nvme0n1 /dev/nvme0n1: ## Anschluss an M.2 auf MB (nahe CPU) Timing O_DIRECT disk reads: 13352 MB in 3.00 seconds = 4450.32 MB/sec root@serverhost1:~# hdparm -t -T --direct /dev/nvme1n1 /dev/nvme1n1: ## Anschluss an M.2 auf MB (mit Kühlkörper zwischen PCIe ) Timing O_DIRECT disk reads: 7880 MB in 3.00 seconds = 2626.10 MB/sec root@serverhost1:~# hdparm -t -T --direct /dev/nvme2n1 /dev/nvme2n1: ## Anschluss an PCIe16 Timing O_DIRECT disk reads: 13174 MB in 3.00 seconds = 4391.14 MB/sec root@serverhost1:~# hdparm -t -T --direct /dev/nvme3n1 /dev/nvme3n1: ## Anschluss an PCIe1 Timing O_DIRECT disk reads: 4874 MB in 3.00 seconds = 1624.21 MB/sec root@serverhost1:~# hdparm -t -T --direct /dev/nvme4n1 /dev/nvme4n1: ## Anschluss an PCIe16 Timing O_DIRECT disk reads: 13558 MB in 3.00 seconds = 4518.85 MB/sec ``` #### mit dd von /dev/zero Vergleich alte Server mit neuem Server: ```console // alter Server, idle, Softwareraid mit LVM, 4 Samsung SSDs root@serverhost:~# dd if=/dev/zero of=/tmp.dd bs=2M count=5000 status=progress 10485760000 bytes (10 GB, 9,8 GiB) copied, 31,8302 s, 329 MB/s // alter Server, im Produktivbetrieb, einzelne SSD per LVM root@serverhost2:~# dd if=/dev/zero of=dd.tmp bs=2M count=5000 status=progress 6098518016 Bytes (6,1 GB, 5,7 GiB) kopiert, 137,906 s, 44,2 MB/s // alter Server, von innen einer VM auf dem Hardwareraid root@server ~ # dd if=/dev/zero of=dd.tmp bs=2M count=2000 status=progress 4194304000 Bytes (4,2 GB, 3,9 GiB) kopiert, 140,086 s, 29,9 MB/s // neuer Server, idle, ZFS mit compression=on root@serverhost1:~# dd if=/dev/zero of=dd.tmp bs=2M count=10000 status=progress 20971520000 bytes (21 GB, 20 GiB) copied, 7.25931 s, 2.9 GB/s // compression=off root@serverhost1:/rpool/data# dd if=/dev/zero of=dd.tmp bs=2M count=10000 status=progress 20971520000 bytes (21 GB, 20 GiB) copied, 9.77478 s, 2.1 GB/s ``` #### mit dd von /dev/urandom Vergleich alte mit neuem Server: ```console // alter Server 1 root@serverhost:~# dd if=/dev/urandom of=dd.tmp bs=2M count=2000 status=progress 4194304000 bytes (4,2 GB, 3,9 GiB) copied, 44,7719 s, 93,7 MB/s // alter Server 2 root@serverhost2:~# dd if=/dev/urandom of=dd.tmp bs=2M count=2000 status=progress 4194304000 Bytes (4,2 GB, 3,9 GiB) kopiert, 52,2127 s, 80,3 MB/s // alter Server 2, innen root@server ~ # dd if=/dev/urandom of=dd.tmp bs=2M count=2000 status=progress 4194304000 Bytes (4,2 GB, 3,9 GiB) kopiert, 43,1894 s, 97,1 MB/s // neuer Server root@serverhost1:~# dd if=/dev/urandom of=dd.tmp bs=2M count=2000 status=progress 4194304000 bytes (4.2 GB, 3.9 GiB) copied, 67.6973 s, 62.0 MB/s // compression=off root@serverhost1:/rpool/data# dd if=/dev/urandom of=dd.tmp bs=2M count=2000 status=progress 4194304000 bytes (4.2 GB, 3.9 GiB) copied, 66.843 s, 62.7 MB/s // iostat währenddessen (in beiden Fällen): root@serverhost1:/rpool/ROOT# zpool iostat rpool 1 capacity operations bandwidth pool alloc free read write read write ---------- ----- ----- ----- ----- ----- ----- rpool 14.2G 9.08T 0 58 1.61K 1.02M rpool 14.2G 9.08T 0 0 0 0 rpool 14.2G 9.08T 0 0 0 0 rpool 14.2G 9.08T 0 0 0 0 rpool 14.2G 9.08T 0 0 0 0 rpool 14.6G 9.08T 0 7.87K 0 379M rpool 14.6G 9.08T 0 0 0 0 rpool 14.6G 9.08T 0 0 0 0 rpool 14.6G 9.08T 0 0 0 0 rpool 14.6G 9.08T 0 0 0 0 rpool 14.9G 9.08T 0 8.40K 0 379M ``` #### mit dd von /dev/urandom mit Direct-I/O ```console // alter Server 1 root@serverhost:~# dd if=/dev/urandom of=dd.tmp bs=2M count=2000 oflag=direct status=progress 4194304000 bytes (4,2 GB, 3,9 GiB) copied, 54,2587 s, 77,3 MB/s // alter Server 2 root@serverhost2:~# dd if=/dev/urandom of=dd.tmp bs=2M count=2000 oflag=direct status=progress 4194304000 Bytes (4,2 GB, 3,9 GiB) kopiert, 90,8256 s, 46,2 MB/s // alter Server 2, innen root@server ~ # dd if=/dev/urandom of=dd.tmp bs=2M count=2000 oflag=direct status=progress 4194304000 Bytes (4,2 GB, 3,9 GiB) kopiert, 203,29 s, 20,6 MB/s // neuer Server root@serverhost1:~# dd if=/dev/urandom of=dd.tmp bs=2M count=2000 oflag=direct status=progress 4194304000 bytes (4.2 GB, 3.9 GiB) copied, 67.4434 s, 62.2 MB/s // iostat trotzdem wie oben: 380M/s alle 5 Sekunden ``` #### mit dd von /dev/urandom mit Direct-I/O und Synchronous-I/O Erst wenn man noch Synchronous-I/O erzwingt, geht der Caching-Effekt von ZFS bzw. vom Hardwareraid weg. Bin mir nicht sicher, ob `oflag=direct oflag=sync` überhaupt stimmt, vermutlich wird Direct-I/O dabei ignoriert und nur Sync-I/O war aktiv... ```console // alter Server 1 root@serverhost:~# dd if=/dev/urandom of=dd.tmp bs=2M count=2000 oflag=direct oflag=sync 4194304000 bytes (4,2 GB, 3,9 GiB) copied, 69,9674 s, 59,9 MB/s // alter Server 2 root@serverhost2:~# dd if=/dev/urandom of=dd.tmp bs=2M count=2000 oflag=direct oflag=sync status=progress 4194304000 Bytes (4,2 GB, 3,9 GiB) kopiert, 150,618 s, 27,8 MB/s // alter Server 2, innen root@server ~ # dd if=/dev/urandom of=dd.tmp bs=2M count=2000 oflag=direct oflag=sync status=progress 4194304000 Bytes (4,2 GB, 3,9 GiB) kopiert, 284,755 s, 14,7 MB/s // neuer Server root@serverhost1:~# dd if=/dev/urandom of=dd.tmp bs=2M count=2000 oflag=direct oflag=sync status=progress 4194304000 bytes (4.2 GB, 3.9 GiB) copied, 69.8301 s, 60.1 MB/s // iostat währenddessen: root@serverhost1:/rpool/ROOT# zpool iostat rpool 1 capacity operations bandwidth pool alloc free read write read write ---------- ----- ----- ----- ----- ----- ----- rpool 23.3G 9.07T 0 63 1.60K 1.19M rpool 23.3G 9.07T 0 2.20K 0 70.2M rpool 23.3G 9.07T 0 2.23K 0 72.7M rpool 23.3G 9.07T 0 2.24K 0 70.1M rpool 23.7G 9.07T 0 2.62K 0 74.4M rpool 23.7G 9.07T 0 2.24K 0 70.1M ``` ### CPU - Ryzen 3950X = 16 cores mit 3500 GHz ![](https://markdown.humboldt-ka.de/uploads/upload_6bce1265e39ae1d4802038a3d9bf3e28.jpg) ### Netzwerkanschlüsse - Gigabit onboard: Kupfer - Dual - 10GBit/s Netzwerkkarte Intel für Ethernet ![](https://markdown.humboldt-ka.de/uploads/upload_6731c9fbb399d0808de5f5ee82e5e6be.png) Für diese Netzwerkkarte benötigt man, entweder - ein DAC-Kabel für einen direkten Anschluss an einen Switch (Aruba-Switch weigert sich mit dem LevelOne DAC-Kabel) - oder ein unterstütztes SFP+ Modul: Intel E10GSFPLR (1310nm mit LC Steckern, Single Mode Fiber) oder Intel E10GSFPSR (850nm mit LC Steckern, Multi-Mode Fiber) ![](https://markdown.humboldt-ka.de/uploads/upload_81fe5dca1552cb4a157b2e8eacb43fe9.jpg) - oder man aktiviert `options ixgbe allow_unsupported_sfp=1` auf eigene Gefahr im ixgbe-Treiber des Ethernetcontrollers. Bisherige 10G-Anschlüsse sind, - beispielsweise am HP-Switch im EG: ``` Transceiver in B2 Type : SFP+LRM Model : J9152D Connector Type : LC Wavelength : 1310nm Transfer Distance : 220m (50um), 220m (62.5um), 220m (50um OM3), ``` das sind vermutlich LRM (Long Range Multimode) Module von Aruba (ca. 900€ pro Stück). - oder der Aruba-Switch mit SFP+-Modul auf der Hinterseite in R302a. Weitere Links: - https://www.glasfaserkabel.de/Der-Unterschied-zwischen-Singlemode-und-Multimode-LWL-Kabeln:_:13.html - https://www.glasfaserkabel.de/Farben-und-Farbcodes-bei-LWL-Kabeln:_:14.html ## Softwareinstallationen - Proxmox VE 7.0.2 ### tools - htop, ifstat, lm-sensors, nvme-cli