ROCKPro64 - PCIe SATA-Karte mit JMicron JMS585- Chip
-
Nachdem ich ja die Tage wieder viel mit dem Marvell Controller zu kämpfen hatte, hatte ich ja einen Tipp vom Kamil bekommen.
(11:44:09) ayufanWithPM: will look later, but this controller is tricky, also on x86 as well
(11:44:16) ayufanWithPM: jms585 seems to be significantly more stableDa man ja in Zeiten von Corona viel Zeit hat, habe ich mal eine Karte geordert. Um es anderen Usern einfacher zu machen, kommt jetzt hier der Link zum Produkt. Meine Bitte, wenn möglich irgendwo lokal bestellen. Unterstützt Eure Händler vor Ort.
Die Karte kam dann heute an. Sie war in einer Pappschachtel verpackt, so wie man es kennt. Der Lieferumfang.
- PCIe SATA Karte
- 5 SATA-Kabel
- Low Profil Bracket
- Treiber-CD
- Ein Zettel als Bedienungsanleitung
Dann mal die Karte in den ROCKPro64, ein frisches Release 0.10.10 auf eine SD-Karte und einschalten. Erst mal sehe ich gar nichts, keine LED und nix. Ohhhh
Ok, mal nachschauen was los ist.
Kernel
root@rockpro64:/mnt/home/rock64# uname -a Linux rockpro64 5.6.0-1134-ayufan-g652fb97d87eb #ayufan SMP Thu Apr 9 22:26:01 UTC 2020 aarch64 GNU/Linux
lspci
root@rockpro64:~# lspci 00:00.0 PCI bridge: Fuzhou Rockchip Electronics Co., Ltd RK3399 PCI Express Root Port 01:00.0 SATA controller: JMicron Technology Corp. Device 0585
Und in lang
root@rockpro64:~# lspci -vvv 00:00.0 PCI bridge: Fuzhou Rockchip Electronics Co., Ltd RK3399 PCI Express Root Port (prog-if 00 [Normal decode]) Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 229 Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 I/O behind bridge: 00000000-00000fff Memory behind bridge: fa000000-fa0fffff Prefetchable memory behind bridge: 00000000-000fffff Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR- BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [80] Power Management version 3 Flags: PMEClk- DSI- D1+ D2- AuxCurrent=0mA PME(D0+,D1+,D2-,D3hot+,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [90] MSI: Enable+ Count=1/1 Maskable+ 64bit+ Address: 00000000fee30040 Data: 0000 Masking: 00000000 Pending: 00000000 Capabilities: [b0] MSI-X: Enable- Count=1 Masked- Vector table: BAR=0 offset=00000000 PBA: BAR=0 offset=00000008 Capabilities: [c0] Express (v2) Root Port (Slot+), MSI 00 DevCap: MaxPayload 256 bytes, PhantFunc 0 ExtTag- RBE+ DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+ RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 256 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 2.5GT/s, Width x4, ASPM L1, Exit Latency L0s <256ns, L1 <8us ClockPM- Surprise- LLActRep- BwNot+ ASPMOptComp+ LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt+ AutBWInt+ LnkSta: Speed 2.5GT/s, Width x2, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise- Slot #0, PowerLimit 0.000W; Interlock- NoCompl- SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg- Control: AttnInd Off, PwrInd Off, Power+ Interlock- SltSta: Status: AttnBtn- PowerFlt- MRL+ CmdCplt- PresDet- Interlock- Changed: MRL- PresDet- LinkState- RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible- RootCap: CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- DevCap2: Completion Timeout: Range B, TimeoutDis+, LTR+, OBFF Via message ARIFwd+ DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled ARIFwd- LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [100 v2] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+ AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn- Capabilities: [274 v1] Transaction Processing Hints Interrupt vector mode supported Device specific mode supported Steering table in TPH capability structure Kernel driver in use: pcieport 01:00.0 SATA controller: JMicron Technology Corp. Device 0585 (prog-if 01 [AHCI 1.0]) Subsystem: JMicron Technology Corp. Device 0000 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 230 Region 0: I/O ports at <unassigned> [disabled] Region 1: I/O ports at <unassigned> [disabled] Region 2: I/O ports at <unassigned> [disabled] Region 3: I/O ports at <unassigned> [disabled] Region 4: I/O ports at <unassigned> [disabled] Region 5: Memory at fa010000 (32-bit, non-prefetchable) [size=8K] [virtual] Expansion ROM at fa000000 [disabled] [size=64K] Capabilities: [80] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [90] MSI: Enable+ Count=8/8 Maskable+ 64bit+ Address: 00000000fee30040 Data: 0000 Masking: 000000e0 Pending: 00000000 Capabilities: [c0] Express (v2) Legacy Endpoint, MSI 00 DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <1us, L1 <1us ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset- MaxPayload 256 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 8GT/s, Width x2, ASPM not supported, Exit Latency L0s <256ns, L1 <8us ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x2, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range B, TimeoutDis+, LTR-, OBFF Via message DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [100 v2] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+ AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn- Capabilities: [150 v1] Device Serial Number 00-00-00-00-00-00-00-00 Capabilities: [160 v1] Power Budgeting <?> Capabilities: [1b8 v1] Latency Tolerance Reporting Max snoop latency: 0ns Max no snoop latency: 0ns Capabilities: [300 v1] #19 Capabilities: [900 v1] L1 PM Substates L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+ PortCommonModeRestoreTime=255us PortTPowerOnTime=10us L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1- T_CommonMode=0us LTR1.2_Threshold=0ns L1SubCtl2: T_PwrOn=10us Kernel driver in use: ahci
Ok, ich hatte gar keine HDD angesteckt. Also nachholen. Hot Swap, nennt man das so? Einfach angeschlossen. Sieht dann so aus.
[ 215.156237] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300) [ 215.405186] ata1.00: ATA-10: ST2000LM015-2E8174, SDM1, max UDMA/133 [ 215.406120] ata1.00: 3907029168 sectors, multi 16: LBA48 NCQ (depth 32), AA [ 215.456688] ata1.00: configured for UDMA/133 [ 215.458198] scsi 0:0:0:0: Direct-Access ATA ST2000LM015-2E81 SDM1 P5 [ 215.461053] sd 0:0:0:0: Attached scsi generic sg0 type 0 [ 215.461287] sd 0:0:0:0: [sda] 3907029168 512-byte logical blocks: (2.00 TB/1) [ 215.462714] sd 0:0:0:0: [sda] 4096-byte physical blocks [ 215.463359] sd 0:0:0:0: [sda] Write Protect is off [ 215.464010] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doeA [ 215.614516] GPT:Primary header thinks Alt. header is not at the end of the d. [ 215.615215] GPT:3906241 != 3907029167 [ 215.615554] GPT:Alternate GPT header not at the end of the disk. [ 215.616105] GPT:3906241 != 3907029167 [ 215.616463] GPT: Use GNU Parted to correct GPT errors. [ 215.616955] sda: sda1 sda2 sda3 sda4 [ 215.618720] sd 0:0:0:0: [sda] Attached SCSI disk
Und hier ist die Platte.
root@rockpro64:~# blkid /dev/mmcblk1: PTUUID="4d25499d-a0f3-454b-b6fe-8067d944b0b6" PTTYPE="gpt" /dev/mmcblk1p1: PARTLABEL="loader1" PARTUUID="33f692b3-54cb-4a37-b602-21a2baf32fa0" /dev/mmcblk1p2: SEC_TYPE="msdos" LABEL_FATBOOT="boot-efi" LABEL="boot-efi" UUID="56C9-F745" TYPE="vfat" PARTLABEL="boot_efi" PARTUUID="919c8f73-5f25-4a01-9072-3a5ed9a88ff2" /dev/mmcblk1p3: LABEL="linux-boot" UUID="23c19647-f4a1-4197-a877-f1bb03456bef" TYPE="ext4" PARTLABEL="linux_boot" PARTUUID="093d0cc0-d122-4dce-aeb5-4e266b4b7d9d" /dev/mmcblk1p4: LABEL="linux-root" UUID="f1c74331-8318-4ee8-a4f7-f0c169fb9944" TYPE="ext4" PARTLABEL="linux_root" PARTUUID="964ab457-58d5-40c4-bb02-dfd37bd2f0da" /dev/sda1: PARTLABEL="loader1" PARTUUID="33f692b3-54cb-4a37-b602-21a2baf32fa0" /dev/sda2: SEC_TYPE="msdos" LABEL_FATBOOT="boot-efi" LABEL="boot-efi" UUID="56C9-F745" TYPE="vfat" PARTLABEL="boot_efi" PARTUUID="919c8f73-5f25-4a01-9072-3a5ed9a88ff2" /dev/sda3: LABEL="linux-boot" UUID="23c19647-f4a1-4197-a877-f1bb03456bef" TYPE="ext4" PARTLABEL="linux_boot" PARTUUID="093d0cc0-d122-4dce-aeb5-4e266b4b7d9d" /dev/sda4: LABEL="linux-root" UUID="f1c74331-8318-4ee8-a4f7-f0c169fb9944" TYPE="ext4" PARTLABEL="linux_root" PARTUUID="964ab457-58d5-40c4-bb02-dfd37bd2f0da"
Ein erster schneller Schreibtest
2,5 Zoll HDD 2TB
root@rockpro64:/tmp/home/rock64# dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync 4096+0 records in 4096+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 36.6512 s, 117 MB/s
2,5 Zoll SSD Kingston 30GB
root@rockpro64:/mnt/home/rock64# dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync 4096+0 records in 4096+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 11.5676 s, 371 MB/s
Mehr Tests folgen. Wie? Booten von SATA, Schreibgeschwindigkeit zwischen den Platten usw.
-
Zwei HDDs angeschlossen.
- 2,5 Zoll HDD 1,8TB Seagate BarraCuda
Einmal nach /mnt und einmal nach /tmp gemountet.
4GB File in /mnt erzeugen
root@rockpro64:/# dd if=/dev/zero of=/mnt/sd.img bs=1M count=4096 conv=fdatasync 4096+0 records in 4096+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 34.5184 s, 124 MB/s
Und dann syncen wir das mal mit /tmp
root@rockpro64:/# rsync -av --progress /mnt /tmp sending incremental file list mnt/ mnt/sd.img 4,294,967,296 100% 98.55MB/s 0:00:41 (xfr#1, to-chk=1/3) mnt/lost+found/ sent 4,296,016,028 bytes received 47 bytes 101,082,731.18 bytes/sec total size is 4,294,967,296 speedup is 1.00
-
Test ob der ROCKPro64 auch ein System startet, wenn an der SATA Karte eine HDD angeschlossen ist.
Der bekannte Test
rock64@rockpro64:~$ dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync 4096+0 records in 4096+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 36.6207 s, 117 MB/s
-
Mit Kamil heute Nachmittag ein wenig getestet. Dazu haben wir mal 5 Festplatten an die SATA-Karte angeschlossen. Yeah.
Doch es gab ein kleines Problem, Kamil wusste das schon vorher Nachdem ich nur noch eine Festplatte mit Bootdevice hatte und diese als Device 4:0 angeschlossen war (entspricht dem Port 5 auf der Karte) bootete das System nicht mehr.
Das hat Kamil im u-boot eben mal gefixt. Der neue u-boot 2020.01-ayufan-2014-gff2cdd38 enthält einen Fix dafür.
- ayufan: rockchip: allow to boot scsi4, as JMS585 can have 5 drives
Und nun bootet die Karte von scsi4 und kann an den anderen Anschlüssen noch 4 andere Laufwerke betreiben.
df -h
root@rockpro64:~# df -h Filesystem Size Used Avail Use% Mounted on udev 918M 0 918M 0% /dev tmpfs 192M 2.8M 189M 2% /run /dev/sde4 28G 5.1G 22G 20% / tmpfs 957M 0 957M 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 957M 0 957M 0% /sys/fs/cgroup /dev/sde3 105M 44M 54M 45% /boot /dev/sde2 12M 0 12M 0% /boot/efi tmpfs 192M 0 192M 0% /run/user/1000
blkid
root@rockpro64:~# blkid /dev/sda1: UUID="ed9e991a-0345-4200-b9ae-f939d4443c91" TYPE="ext4" PARTUUID="8786fc87-01" /dev/sdb1: LABEL="1TB" UUID="99950e1f-5637-4cb8-9985-e9deea6c8f96" UUID_SUB="48ae2955-33d1-46a6-9067-afd65a04de2b" TYPE="btrfs" PARTUUID="b9aa5cfb-01" /dev/sdc: PTUUID="4d25499d-a0f3-454b-b6fe-8067d944b0b6" PTTYPE="gpt" /dev/sdd1: PARTUUID="154f54f0-4cdc-b547-b5ed-4c5ef5d1ac98" /dev/sde1: PARTLABEL="loader1" PARTUUID="37466429-e4a4-495c-b9a1-3f74625a3cae" /dev/sde2: SEC_TYPE="msdos" LABEL_FATBOOT="boot-efi" LABEL="boot-efi" UUID="ABCD-FC7D" TYPE="vfat" PARTLABEL="boot_efi" PARTUUID="72e36967-4050-4bb3-8f8f-bf6755c38f28" /dev/sde3: LABEL="linux-boot" UUID="8e289a3e-0f9b-4da1-a147-51e03390637c" TYPE="ext4" PARTLABEL="linux_boot" PARTUUID="fe944fd2-3e42-4202-8a95-656e9bdb4be6" /dev/sde4: LABEL="linux-root" UUID="3e9513c6-dfd1-48c9-bee2-04bb5a153056" TYPE="ext4" PARTLABEL="linux_root" PARTUUID="d2d1dd88-030d-4f74-998f-7c9ce7d385d0"
Und schön bunt ist es auch
Das wäre dann ein SATA-Karte mit JMS585 im Vollausbau
Danke Kamil!!
-
Nächster Test.
Zwei RAID1, insgesamt 4 HDDs und eine SSD 30GB als System.
Hardware
- ROCKPro64v2.1 mit 2GB RAM
- PCIe SATA Karte JMS585
- 2 * 2,5 Zoll HDD 2TB Seagate
- 2 * 2,5 Zoll HDD HGST 1TB
- 1 30GB SSD Kingston
Also, alles in allem nix besonderes, so Kram der sich hier angesammelt hat
Software
- Kamils Release 0.10.11
- u-boot im SPI 2020.01-ayufan-2014-gff2cdd38
Der Plan
md0
- sda 1TB
- sdb 1TB
md1
- sdc 1,8TB
- sdd 1,8TB
System
- sde 30GB SSDKingston
Übersicht
root@rockpro64:~# blkid /dev/sde2: SEC_TYPE="msdos" LABEL_FATBOOT="boot-efi" LABEL="boot-efi" UUID="ABCD-FC7D" TYPE="vfat" PARTLABEL="boot_efi" PARTUUID="72e36967-4050-4bb3-8f8f-bf6755c38f28" /dev/sde3: LABEL="linux-boot" UUID="8e289a3e-0f9b-4da1-a147-51e03390637c" TYPE="ext4" PARTLABEL="linux_boot" PARTUUID="fe944fd2-3e42-4202-8a95-656e9bdb4be6" /dev/sde4: LABEL="linux-root" UUID="3e9513c6-dfd1-48c9-bee2-04bb5a153056" TYPE="ext4" PARTLABEL="linux_root" PARTUUID="d2d1dd88-030d-4f74-998f-7c9ce7d385d0" /dev/sda: UUID="ff08805b-a249-f512-6b2d-ed9ef86665be" UUID_SUB="27fa92a3-6275-8a3c-d06b-8ccd02e931ae" LABEL="rockpro64:0" TYPE="linux_raid_member" /dev/sdb: UUID="ff08805b-a249-f512-6b2d-ed9ef86665be" UUID_SUB="f5f18413-ab32-58d3-21d0-0fef26947d1c" LABEL="rockpro64:0" TYPE="linux_raid_member" /dev/sdc: UUID="eca7e4b4-1436-71df-4261-c05037dc9070" UUID_SUB="8d1b00bd-552d-51c9-ed87-9145591a02c1" LABEL="rockpro64:1" TYPE="linux_raid_member" /dev/sdd: UUID="eca7e4b4-1436-71df-4261-c05037dc9070" UUID_SUB="c4ee7d26-e264-690d-0933-93ae74ba43f4" LABEL="rockpro64:1" TYPE="linux_raid_member" /dev/sde1: PARTLABEL="loader1" PARTUUID="37466429-e4a4-495c-b9a1-3f74625a3cae"
Einrichtung mdadm
root@rockpro64:~# apt install mdadm Reading package lists... Done Building dependency tree Reading state information... Done Suggested packages: dracut-core Recommended packages: default-mta | mail-transport-agent The following NEW packages will be installed: mdadm 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 425 kB of archives. After this operation, 1223 kB of additional disk space will be used. Get:1 http://cdn-fastly.deb.debian.org/debian buster/main arm64 mdadm arm64 4.1-1 [425 kB] Fetched 425 kB in 1s (468 kB/s) Preconfiguring packages ... Selecting previously unselected package mdadm. (Reading database ... 41667 files and directories currently installed.) Preparing to unpack .../archives/mdadm_4.1-1_arm64.deb ... Unpacking mdadm (4.1-1) ... Setting up mdadm (4.1-1) ... Generating mdadm.conf... done. update-initramfs: deferring update (trigger activated) update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults Processing triggers for systemd (241-7~deb10u3) ... Processing triggers for initramfs-tools (0.133+deb10u1) ... update-initramfs: Generating /boot/initrd.img-5.6.0-1132-ayufan-g81043e6e109a
Einrichtung md0
Raid anlegen
root@rockpro64:~# mdadm --create /dev/md0 --auto md --level=1 --raid-devices=2 /dev/sda /dev/sdb mdadm: partition table exists on /dev/sda mdadm: partition table exists on /dev/sda but will be lost or meaningless after creating array mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 mdadm: partition table exists on /dev/sdb mdadm: partition table exists on /dev/sdb but will be lost or meaningless after creating array Continue creating array? Y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
Filesystem anlegen
root@rockpro64:~# mkfs.ext4 /dev/md0 mke2fs 1.44.5 (15-Dec-2018) Creating filesystem with 244157616 4k blocks and 61046784 inodes Filesystem UUID: 174a13ea-5ac9-4628-9741-3f802e110b34 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848 Allocating group tables: done Writing inode tables: done Creating journal (262144 blocks): done Writing superblocks and filesystem accounting information: done
Mounten
root@rockpro64:~# mkdir /mnt/DATA
Einrichtung md1
Raid anlegen
root@rockpro64:~# mdadm --create /dev/md1 --auto md --level=1 --raid-devices=2 /dev/sdc /dev/sdd mdadm: partition table exists on /dev/sdc mdadm: partition table exists on /dev/sdc but will be lost or meaningless after creating array mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 mdadm: partition table exists on /dev/sdd mdadm: partition table exists on /dev/sdd but will be lost or meaningless after creating array Continue creating array? Y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md1 started.
Filesystem anlegen
root@rockpro64:~# mkfs.ext4 /dev/md1 mke2fs 1.44.5 (15-Dec-2018) Creating filesystem with 488345616 4k blocks and 122093568 inodes Filesystem UUID: e697a0f3-8b24-497c-b453-820d70059ac3 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848 Allocating group tables: done Writing inode tables: done Creating journal (262144 blocks): done Writing superblocks and filesystem accounting information: done
Mounten
root@rockpro64:~# mount /dev/md1 /mnt/NAS
Ergebnis
Filesystem Size Used Avail Use% Mounted on udev 918M 0 918M 0% /dev tmpfs 192M 5.2M 187M 3% /run /dev/sde4 28G 5.1G 22G 20% / tmpfs 957M 0 957M 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 957M 0 957M 0% /sys/fs/cgroup /dev/sde3 105M 45M 53M 46% /boot /dev/sde2 12M 0 12M 0% /boot/efi tmpfs 192M 0 192M 0% /run/user/1000 /dev/md0 916G 77M 870G 1% /mnt/DATA /dev/md1 1.8T 77M 1.7T 1% /mnt/NAS
Und jetzt sind die RAIDs erst mal am resyncen......
Every 10.0s: cat /proc/mdstat rockpro64: Thu Apr 16 15:15:54 2020 Personalities : [raid1] md1 : active raid1 sdd[1] sdc[0] 1953382464 blocks super 1.2 [2/2] [UU] [>....................] resync = 3.4% (66640768/1953382464) finish=450.5min speed=69797K/sec bitmap: 15/15 pages [60KB], 65536KB chunk md0 : active raid1 sdb[1] sda[0] 976630464 blocks super 1.2 [2/2] [UU] [==>..................] resync = 10.3% (101341312/976630464) finish=170.2min speed=85702K/sec bitmap: 8/8 pages [32KB], 65536KB chunk unused devices: <none>
wird fortgesetzt...
-
Der Resync ist durch.
Personalities : [raid1] md1 : active raid1 sdd[1] sdc[0] 1953382464 blocks super 1.2 [2/2] [UU] bitmap: 0/15 pages [0KB], 65536KB chunk md0 : active raid1 sdb[1] sda[0] 976630464 blocks super 1.2 [2/2] [UU] bitmap: 0/8 pages [0KB], 65536KB chunk unused devices: <none>
Speedtest des Systemes 30GB SSD Kongston
root@rockpro64:/home/rock64# dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync 4096+0 records in 4096+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 13.6125 s, 316 MB/s
Speedtest auf /mnt/DATA
root@rockpro64:/mnt/DATA# dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync 4096+0 records in 4096+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 47.5736 s, 90.3 MB/s
Speedtest auf /mnt/NAS
root@rockpro64:/mnt/NAS# dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync 4096+0 records in 4096+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 42.4595 s, 101 MB/s
Auf meinem alten NAS mit ROCKPro64 bekomme ich das als Ergebnis. Aber darin verbaut sind auch zwei 3,5 Zoll WD mit je 4TB verbaut.
root@rockpro64:/mnt/nas# dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync 4096+0 Datensätze ein 4096+0 Datensätze aus 4294967296 bytes (4,3 GB, 4,0 GiB) copied, 29,1319 s, 147 MB/s
Jetzt wisst Ihr auch, was ich als nächstes Teste...
-
Heute nach Feierabend, die Kiste mal wieder gestartet. Ich konnte md0 nicht mounten. Ok, das ist einfach, den Fehler kenne ich
blkid
root@rockpro64:~# blkid /dev/sda: UUID="ff08805b-a249-f512-6b2d-ed9ef86665be" UUID_SUB="27fa92a3-6275-8a3c-d06b-8ccd02e931ae" LABEL="rockpro64:0" TYPE="linux_raid_member" /dev/sdb: UUID="ff08805b-a249-f512-6b2d-ed9ef86665be" UUID_SUB="f5f18413-ab32-58d3-21d0-0fef26947d1c" LABEL="rockpro64:0" TYPE="linux_raid_member" /dev/sdc: UUID="eca7e4b4-1436-71df-4261-c05037dc9070" UUID_SUB="8d1b00bd-552d-51c9-ed87-9145591a02c1" LABEL="rockpro64:1" TYPE="linux_raid_member" /dev/sdd: UUID="eca7e4b4-1436-71df-4261-c05037dc9070" UUID_SUB="c4ee7d26-e264-690d-0933-93ae74ba43f4" LABEL="rockpro64:1" TYPE="linux_raid_member" /dev/sde1: PARTLABEL="loader1" PARTUUID="37466429-e4a4-495c-b9a1-3f74625a3cae" /dev/sde2: SEC_TYPE="msdos" LABEL_FATBOOT="boot-efi" LABEL="boot-efi" UUID="ABCD-FC7D" TYPE="vfat" PARTLABEL="boot_efi" PARTUUID="72e36967-4050-4bb3-8f8f-bf6755c38f28" /dev/sde3: LABEL="linux-boot" UUID="8e289a3e-0f9b-4da1-a147-51e03390637c" TYPE="ext4" PARTLABEL="linux_boot" PARTUUID="fe944fd2-3e42-4202-8a95-656e9bdb4be6" /dev/sde4: LABEL="linux-root" UUID="3e9513c6-dfd1-48c9-bee2-04bb5a153056" TYPE="ext4" PARTLABEL="linux_root" PARTUUID="d2d1dd88-030d-4f74-998f-7c9ce7d385d0" /dev/md127: UUID="174a13ea-5ac9-4628-9741-3f802e110b34" TYPE="ext4" /dev/md126: UUID="e697a0f3-8b24-497c-b453-820d70059ac3" TYPE="ext4"
Da sehen wir schon das Problem, die heißen jetzt md126 und md127.
/etc/mdadm/mdadm.conf
Das können wir ändern.
nano /etc/mdadm/mdadm.conf
und dort folgendes eintragen.
# This configuration was auto-generated on Thu, 16 Apr 2020 14:54:56 +0000 by mkconf ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.2 UUID=ff08805b:a249f512:6b2ded9e:f86665be ARRAY /dev/md1 level=raid1 num-devices=2 metadata=1.2 UUID=eca7e4b4:143671df:4261c050:37dc9070
Die UUIDs müsst ihr mit Euren Werten füllen. Diese bekommt ihr mit
root@rockpro64:~# mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Thu Apr 16 14:55:51 2020 Raid Level : raid1 Array Size : 976630464 (931.39 GiB 1000.07 GB) Used Dev Size : 976630464 (931.39 GiB 1000.07 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Intent Bitmap : Internal Update Time : Fri Apr 17 13:49:54 2020 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Consistency Policy : bitmap Name : rockpro64:0 (local to host rockpro64) UUID : ff08805b:a249f512:6b2ded9e:f86665be Events : 18567 Number Major Minor RaidDevice State 0 8 0 0 active sync /dev/sda 1 8 16 1 active sync /dev/sdb
Danach
root@rockpro64:~# update-initramfs -u update-initramfs: Generating /boot/initrd.img-5.6.0-1132-ayufan-g81043e6e109a mdadm: metadata format 1.20 unknown, ignored. mdadm: metadata format 1.20 unknown, ignored.
Den Fehler
mdadm: metadata format 1.20 unknown, ignored.
bekommt man, wenn man 1.20 eingibt. Richtig muss es 1.2 lauten. Was für dumme Software
Mount beim Booten
Wenn die RAIDs automatisch beim Booten eingebunden werden sollen, muss man in der /etc/fstab folgendes eintragen.
LABEL=linux-root / ext4 defaults 0 1 LABEL=linux-boot /boot ext4 defaults 0 1 LABEL=boot-efi /boot/efi vfat defaults,sync 0 1 /dev/md0 /mnt/DATA ext4 defaults 0 0 /dev/md1 /mnt/NAS ext4 defaults 0 0
Und so sieht das dann aus, wenn man den ROCKPro64 mit den 5 Festplatten neustartet und alles funktioniert
root@rockpro64:~# df -h Filesystem Size Used Avail Use% Mounted on udev 917M 0 917M 0% /dev tmpfs 192M 2.8M 189M 2% /run /dev/sde4 28G 5.1G 22G 20% / tmpfs 957M 0 957M 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 957M 0 957M 0% /sys/fs/cgroup /dev/md0 916G 4.1G 866G 1% /mnt/DATA /dev/md1 1.8T 4.1G 1.7T 1% /mnt/NAS /dev/sde3 105M 45M 53M 46% /boot /dev/sde2 12M 0 12M 0% /boot/efi tmpfs 192M 0 192M 0% /run/user/1000
-
Ich habe das jetzt hier alles provisorisch umgebaut.
Die 2TB Platten sind jetzt als md1 DATA noch drin. Aus meinem alten NAS die zwei 3,5 Zoll 4TB HDDs rein, als md0 NAS.
blkid
root@rockpro64:/mnt/NAS# blkid /dev/sda1: UUID="dbbdbbf3-d57a-f8f0-158a-95a090318787" UUID_SUB="a4e46abc-0745-812d-453a-5900c93be9e6" LABEL="rockpro64:0" TYPE="linux_raid_member" PARTUUID="bad3f3c0-1c93-8c48-a236-2d36f561208d" /dev/sdb1: UUID="dbbdbbf3-d57a-f8f0-158a-95a090318787" UUID_SUB="f686690c-7820-6177-ff0d-b49d4b6ee162" LABEL="rockpro64:0" TYPE="linux_raid_member" PARTUUID="4969cca5-813b-744b-8be8-267b8dce3a64" /dev/sdc: UUID="eca7e4b4-1436-71df-4261-c05037dc9070" UUID_SUB="8d1b00bd-552d-51c9-ed87-9145591a02c1" LABEL="rockpro64:1" TYPE="linux_raid_member" /dev/sdd: UUID="eca7e4b4-1436-71df-4261-c05037dc9070" UUID_SUB="c4ee7d26-e264-690d-0933-93ae74ba43f4" LABEL="rockpro64:1" TYPE="linux_raid_member" /dev/sde1: PARTLABEL="loader1" PARTUUID="37466429-e4a4-495c-b9a1-3f74625a3cae" /dev/sde2: SEC_TYPE="msdos" LABEL_FATBOOT="boot-efi" LABEL="boot-efi" UUID="ABCD-FC7D" TYPE="vfat" PARTLABEL="boot_efi" PARTUUID="72e36967-4050-4bb3-8f8f-bf6755c38f28" /dev/sde3: LABEL="linux-boot" UUID="8e289a3e-0f9b-4da1-a147-51e03390637c" TYPE="ext4" PARTLABEL="linux_boot" PARTUUID="fe944fd2-3e42-4202-8a95-656e9bdb4be6" /dev/sde4: LABEL="linux-root" UUID="3e9513c6-dfd1-48c9-bee2-04bb5a153056" TYPE="ext4" PARTLABEL="linux_root" PARTUUID="d2d1dd88-030d-4f74-998f-7c9ce7d385d0" /dev/md1: UUID="e697a0f3-8b24-497c-b453-820d70059ac3" TYPE="ext4" /dev/md0: UUID="65d12371-db28-405c-91c7-8ee644e5cbaa" TYPE="ext4"
df -h
root@rockpro64:/mnt/NAS# df -h Filesystem Size Used Avail Use% Mounted on udev 917M 0 917M 0% /dev tmpfs 192M 5.3M 187M 3% /run /dev/sde4 28G 5.5G 21G 21% / tmpfs 957M 0 957M 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 957M 0 957M 0% /sys/fs/cgroup /dev/md1 1.8T 2.4G 1.7T 1% /mnt/DATA /dev/md0 3.6T 693G 2.8T 20% /mnt/NAS /dev/sde3 105M 87M 9.7M 90% /boot /dev/sde2 12M 0 12M 0% /boot/efi tmpfs 192M 0 192M 0% /run/user/1000
Speedtest
root@rockpro64:/mnt/NAS# dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync,notrunc 4096+0 records in 4096+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 27.6825 s, 155 MB/s root@rockpro64:/mnt/NAS# echo 3 | sudo tee /proc/sys/vm/drop_caches 3 root@rockpro64:/mnt/NAS# dd if=sd.img of=/dev/null bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 6.61112 s, 162 MB/s
Speedtest ein wenig anders. Erst schreiben wir 4GB, dann Cache leeren, dann die 4GB lesen. Quelle: wiki.ubuntuusers.de
-
Was fehlt noch für ein schönes NAS? Da ich ja nicht ständig auf das NAS zugreife, lege ich die angeschlossenen gerne schlafen. Das spart auch reichlich Energie.
Dazu nutzen wir hdparm
Installation
apt install hsparm
Konfiguration
ls /dev/disk/by-id
Die ID's der HDDs auslesen. In meinem Fall sieht das so aus.
root@NASrp64:/# ls -lha /dev/disk/by-id insgesamt 0 drwxr-xr-x 2 root root 460 Apr 18 14:04 . drwxr-xr-x 8 root root 160 Jan 18 2013 .. lrwxrwxrwx 1 root root 9 Apr 18 13:51 ata-KINGSTON_SS200S330G_50026B723A0B3073 -> ../../sde lrwxrwxrwx 1 root root 10 Apr 18 13:51 ata-KINGSTON_SS200S330G_50026B723A0B3073-part1 -> ../../sde1 lrwxrwxrwx 1 root root 10 Apr 18 13:51 ata-KINGSTON_SS200S330G_50026B723A0B3073-part2 -> ../../sde2 lrwxrwxrwx 1 root root 10 Apr 18 13:51 ata-KINGSTON_SS200S330G_50026B723A0B3073-part3 -> ../../sde3 lrwxrwxrwx 1 root root 10 Apr 18 13:51 ata-KINGSTON_SS200S330G_50026B723A0B3073-part4 -> ../../sde4 lrwxrwxrwx 1 root root 9 Apr 18 14:04 ata-ST2000LM015-2E8174_WDZHD87G -> ../../sdd lrwxrwxrwx 1 root root 9 Apr 18 14:04 ata-ST2000LM015-2E8174_ZDZ2MY9W -> ../../sdc lrwxrwxrwx 1 root root 9 Apr 18 13:51 ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K5PPSH52 -> ../../sda lrwxrwxrwx 1 root root 10 Apr 18 13:51 ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K5PPSH52-part1 -> ../../sda1 lrwxrwxrwx 1 root root 9 Apr 18 13:51 ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K6XD2C26 -> ../../sdb lrwxrwxrwx 1 root root 10 Apr 18 13:51 ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K6XD2C26-part1 -> ../../sdb1 lrwxrwxrwx 1 root root 9 Apr 18 14:05 md-name-NASrp64:1 -> ../../md1 lrwxrwxrwx 1 root root 9 Apr 18 13:51 md-name-rockpro64:0 -> ../../md0 lrwxrwxrwx 1 root root 9 Apr 18 14:05 md-uuid-0f5f870b:eed97c18:50537db9:67b09a14 -> ../../md1 lrwxrwxrwx 1 root root 9 Apr 18 13:51 md-uuid-dbbdbbf3:d57af8f0:158a95a0:90318787 -> ../../md0 lrwxrwxrwx 1 root root 9 Apr 18 14:04 wwn-0x5000c500b1112c07 -> ../../sdc lrwxrwxrwx 1 root root 9 Apr 18 14:04 wwn-0x5000c500be743191 -> ../../sdd lrwxrwxrwx 1 root root 9 Apr 18 13:51 wwn-0x50014ee210ba6136 -> ../../sdb lrwxrwxrwx 1 root root 10 Apr 18 13:51 wwn-0x50014ee210ba6136-part1 -> ../../sdb1 lrwxrwxrwx 1 root root 9 Apr 18 13:51 wwn-0x50014ee21157c259 -> ../../sda lrwxrwxrwx 1 root root 10 Apr 18 13:51 wwn-0x50014ee21157c259-part1 -> ../../sda1
Das sind meine vier Festplatten, die ich schlafen legen möchte.
- ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K5PPSH52
- ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K6XD2C26
- ata-ST2000LM015-2E8174_WDZHD87G
- ata-ST2000LM015-2E8174_ZDZ2MY9W
Config bearbeiten
sudo nano /etc/hdparm.conf
Das dann ans Ende der Datei. Sieht dann so aus
# HDDs schlafen legen nach 20 Minuten (240*5=1200Sek.=20Min.) /dev/disk/by-id/ata-ST2000LM015-2E8174_WDZHD87G { # mult_sect_io = 16 # write_cache = off # dma = on spindown_time = 240 } /dev/disk/by-id/ata-ST2000LM015-2E8174_ZDZ2MY9W { # mult_sect_io = 16 # write_cache = off # dma = on spindown_time = 240 } /dev/disk/by-id/ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K5PPSH52 { # mult_sect_io = 16 # write_cache = off # dma = on spindown_time = 240 } /dev/disk/by-id/ata-WDC_WD40EZRZ-00GXCB0_WD-WCC7K6XD2C26 { # mult_sect_io = 16 # write_cache = off # dma = on spindown_time = 240 }
Mit spindown_time = 10 kann man mal schnell testen. Man hat ja nicht ewig Zeit Danach mal eben neustarten und etwas warten, dann legen sich die Platten schlafen. Das machen sie natürlich nur, wenn es keine Aktivität gibt! Bei mir hat das wunderbar geklappt, nach einer knappen Minute waren sie leise.
Die 240 also 20 Minuten, benutze ich schon ewig auf meinem NAS, ohne Probleme. Also, nach dem Testen auf 240 umstellen! Neustarten nicht vergessen.
Damit hat man dann ein nettes NAS zusammen. Habe dann noch alle cronjobs angelegt, dem NAS beigebracht wie es Mails versendet und ein paar Standardeinstellungen angepasst. Somit sollte es fertig sein. Wenn ich jetzt die nächsten tage nichts außergewöhnliches feststelle, baue ich das alles mal in schön zusammen
-
Hallo Frank,
ja das hört sich ja sehr interessant an.
mich interessiert noch wie du es mit der Stromversorgung genau gemacht hast? Da es ja mit den pine64-HD Stromkabeln nur für 2 HD klappt. Ich plane das auch so ähnlich auf zubauen. Allerdings mit 4 3,5" HD.
Baust du es "schön" in ein Gehäuse oder wie ist da dein Plan.
Übrigens hast du ganz oben im Thread einen kleine Typo ich denke die 5 USB-Kabel sind 5 SATA-Kabel.
Gruß
Martin -
Hallo Martin,
danke für den Hinweis mit dem Typo, habe es gefixt.
Ich gebe dir einen kleinen Einblick in mein geheimes Versuchslabor
Oben das Netzteil, was die ganzen Platten versorgt. Der ROCKPro64 unten links ist das NAS (zum Testen). Dieser Aufbau kommt in das Gehäuse unten rechts. Das ist irgendein Gehäuse, wo ich einen ROCKPro64 eingebaut habe. Dafür habe ich jetzt ein Netzteil bestellt.
Der ROCKPro64 in dem Gehäuse ist aktuell mein Wireguard-Server zum Testen. Ich hoffe das ist jetzt so weit klar!? Wenn nicht, einfach fragen.
Ich habe jetzt mittels Restic, das vorhandene NAS (md0) auf das andere Raid DATA (md1) gesichert. Das waren insgesamt 693 GB an Daten. Ja, ich muss mal wieder aufräumen
Und jetzt mach ich noch ein wenig Stress auf den Platten und teste die Daten.
restic --password-file /root/passwd -r /mnt/DATA/Backup_NAS check --read-data
-
-
-
-
-
-
Star64 - Warnung
Angeheftet Star64 -
-
-
-
-