User Tools

Site Tools


nndocs:sandbox

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
nndocs:sandbox [2024/09/19 21:07] – [MAC addresses] fix arithmetic naptasticnndocs:sandbox [2025/11/06 00:13] (current) – update hard drive locations naptastic
Line 11: Line 11:
 | Food | cherry | | Food | cherry |
  
-====IQNs==== +====IQN and NQN==== 
-We do iSCSI Qualified Names by the book, but as simply as possible. A couple of examples:+We do iSCSI and NVMe Qualified Names by the book, but as simply as possible. A couple of examples:
  
-    iqn.2014-08.rocks.narf.sadness +    iqn.2014-08.rocks.narf.southpark:duckling 
-    iqn.2004-12.com.naptastic.quirk+    nqn.2004-12.com.naptastic.quirk:68
  
-IQNs can also have :more.stuff on the end. I can't come up with a use case, since hostnames are already fully-qualified and unique.+  * 'iqn' for iSCSI or 'nqn' for NVMe-oF 
 +  * YYYY-MM is the month in which the domain was registered. 
 +  * the hostname is in backwards DNS order 
 +  * :initiator or :namespace
  
-There are still some :01 suffixes lurking around the networkFix them or don't; just don't make new ones.+From the perspective of a host, every storage bus has a numberBus 0 is the local PCI busBus 1 is for the host acting as an initiator. Higher numbers are for a host acting as a target. Connections go like this:
  
-Ideally, /etc/iscsi/initiatorname.iscsi gets the right value as part of system provisioning, and the target only ever has to use the host's correct nameThere's a strong warning about changing IninitatorName in that file; if you're changing it to the correct value (i.e., the value in the target's ACL) then it's fine.+  iqn.2004-12.com.naptastic.rocky:01 -> iqn.2014-08.rocks.narf.southpark:68
  
-====NQNs==== +Since rocky's host number is 68, any other host wishing to share storage with rocky should do so on their own target bus number 68The network is responsible to connect rocky's bus 01 with southpark's bus 68.
-NQNs: nqn.2014-08.rocks.narf.hostname is the whole thing. No :01 or any of that jazz, at least not yet.+
  
 ====Interfaces==== ====Interfaces====
Line 36: Line 38:
   * mlxX: mlx ports when they are configured for Ethernet operation   * mlxX: mlx ports when they are configured for Ethernet operation
  
 +
 +----
 =====Numbers===== =====Numbers=====
  
Line 46: Line 50:
  
 === MAC addresses for the quad-port gigabit cards === === MAC addresses for the quad-port gigabit cards ===
-This was in shark, and is now in a drawer:+southpark en(0..3):
       hardware ethernet 00:10:18:f8:02:20;       hardware ethernet 00:10:18:f8:02:20;
       hardware ethernet 00:10:18:f8:02:22;       hardware ethernet 00:10:18:f8:02:22;
Line 52: Line 56:
       hardware ethernet 00:10:18:f8:02:26;       hardware ethernet 00:10:18:f8:02:26;
  
-duckling en(0..3)+in a drawer:
       hardware ethernet 00:10:18:f8:2e:10;       hardware ethernet 00:10:18:f8:2e:10;
       hardware ethernet 00:10:18:f8:2e:12;       hardware ethernet 00:10:18:f8:2e:12;
       hardware ethernet 00:10:18:f8:2e:14;       hardware ethernet 00:10:18:f8:2e:14;
       hardware ethernet 00:10:18:f8:2e:16;       hardware ethernet 00:10:18:f8:2e:16;
 +
 +====IPv6====
 +IPv6 local unique addresses have four parts:
 +  - 8 bits of fixed prefix (fd)
 +  - 40 bits of pseudorandom prefix
 +  - 16 bits of subnet
 +  - 64 bits of GUID
 +
 +My top 48 bits are going to be fd20:4e41:5020. Subnet bits should match their Infiniband subnet. Host bits come from the hardware address.
  
 ====IP Addresses==== ====IP Addresses====
Line 69: Line 82:
 ====Networks==== ====Networks====
  
-  * 0-3/22: "green": all emo* and eth* devices should get bridged to this network.+I'm not currently using InfiniBand subnets for anything. They weren't helpful in partitioning SRP or iSCSI traffic. 
 + 
 +VLAN and VNI can match the third octet. 0 is not valid, so use the largest number in the subnet. 
 + 
 +^ Network ^ IPv4 Range ^ IPv6 Range ^ IB Subnet ^ VLAN ^ VXLAN IP ^ VXLAN ID ^ 
 +| green | 172.20.0/22 | fd20:4e41:5020:ffff::/64. | ffff | 3 | 225.172.20.64 | 3 | 
 +| mgmt | 172.20.4/24 | - | ffff | 4 | 225.172.20.64 | 4 | 
 + 
 +  * 0-3/22: "green": Most eth* and en* devices should get bridged to this network.
     * 0: .1 is the network controller (router, DHCP, DNS); .2+ is for assigned hosts     * 0: .1 is the network controller (router, DHCP, DNS); .2+ is for assigned hosts
     * 1: .0-255 contains IPMI interfaces and nothing else right now     * 1: .0-255 contains IPMI interfaces and nothing else right now
     * 2: .0-255 is for unassigned DHCP hosts     * 2: .0-255 is for unassigned DHCP hosts
-    * 3: .0-254 is for VMs that are expected to only run on a specific physical host. Hosts  +    * 3: .0-254 is for VMs that are expected to only run on a specific physical host.
-      * .32-39: butler+
       * .72-79: carbon       * .72-79: carbon
       * .80-87: duckling       * .80-87: duckling
Line 80: Line 100:
       * .96-103: shark       * .96-103: shark
       * .104-111: southpark (cudapark, )       * .104-111: southpark (cudapark, )
-  * Unused: 4-7 (/22) (if security cameras ever get a network, it should come from this range.)+  * 4: "mgmt": IPMI and other "out-of-band" management 
 +  * Unused: 5 (/24) 
 +  * Unused: 6-7 (/23) (if security cameras ever get a network, it should come from this range.)
   * Future Multipath: 8-15 (/21 in /24's)   * Future Multipath: 8-15 (/21 in /24's)
   * Unused: 16-31 (/20)   * Unused: 16-31 (/20)
   * Unused: 32-63 (/19)   * Unused: 32-63 (/19)
-  * RDMA networks (/19): IP over InfiniBand and Ethernet can't be bridged, so they need to be separate subnets. I //could// bridge ib0+ib1 or mlx0+mlx1 but that takes away flexibility so I'm not going to.+  * RDMA networks (/19): IP over InfiniBand and Ethernet can't be bridged, so they need to be separate subnets. I'm not sure if ib0/ib1 is a useful division.
     * 64: ib0     * 64: ib0
     * 65: ib1     * 65: ib1
-    * 66: mlx0 +    * 66-67 (/23)Reserved
-    * 67: mlx1+
     * 68-79 (/22): Reserved     * 68-79 (/22): Reserved
     * 80-95 (/21): Reserved     * 80-95 (/21): Reserved
Line 111: Line 132:
 there might be other san* VLANs defined. I don't remember. there might be other san* VLANs defined. I don't remember.
  
-I am no longer able to manage the TP-link switch. It's fixed configuration. I'm not using VLANs so I don't know how it will behave with them.+I am no longer able to manage the TP-link switch. It's fixed configuration. I don't know how it would handle traffic with VLAN tags.
  
 ====Host Numbers==== ====Host Numbers====
Line 122: Line 143:
   * 13: southpark (2023)   * 13: southpark (2023)
   * 14: pepto (2026)   * 14: pepto (2026)
-  * 15..23: (mainframe expanders. If we get bigger than 16 nodes I don't mind renumbering again.)+  * 15..23: (future expansion)
   * 24..31: switches   * 24..31: switches
     * 24: butwhy b4:fb:e4:23:52:01     * 24: butwhy b4:fb:e4:23:52:01
Line 133: Line 154:
   * 35: xp-pe (tbh idk if this still exists)   * 35: xp-pe (tbh idk if this still exists)
   * 36: tf2   * 36: tf2
 +  * 68: rocky (VM with SR-IOV parts)
  
 +----
 +=====Where Data Lives=====
 +===Storage===
 +  * Production volumes:
 +    * Samsung 850 512GB NVMe
 +      * installed in southpark on the motherboard, I think?
 +    * Western Digital Black 2TB NVMe
 +      * installed in shark on the motherboard
 +    * Two Sabrent 1TB NVMe drive
 +      * installed in southpark on the x16 riser card
 +      * Partitioned unfortunately; I'd like to move everything off them.
 +    * janet: 4TB Samsung QVO.
 +    * Crucial 120GB SATA SSD boot volume
 +      * southpark's boot volume
 +    * 512GB Crucial SATA SSD
 +      * duckling boot, swap, and local snapshots
 +    * black: Three 4TB drives in a RAID-5 holding backups; currently in shark.
 +  * Not installed:
 +    * 2TB Vulcan Z SATA SSD (probably for shark as a backup)
 +
 +===So Where Does Shit Live?===
 +  * VM Images:
 +  * TV shows, movies, software, stuff like that: janet
 +  * Home directories:
 +  * OS volumes: In their respective hosts
 +
 +I am still struggling with the fact that things really have to boot off local storage. Fibre Channel without a switch isn't worth it and a switch isn't worth it.
 +
 +----
 =====Big Idea Dumping Ground===== =====Big Idea Dumping Ground=====
 +===SSH tunnel===
 +  ssh -D 1337 -q -C -N david@do.naptastic.com
 +
 +====SoC on a PCI card====
 +Mostly this is to enable other projects. It needs at least these features:
 +
 +  * reasonable amount of CPU and DRAM
 +  * PCIe 3.0 x1 or better
 +  * Internal ports:
 +    - m.2 slot
 +    - Explicitly copy rpi's 40-pin header
 +    - LP-DIMM
 +  * External ports:
 +    - HDMI
 +    - gigabit Ethernet
 +    - (2) USB 3.1
 +
 +The card presents itself to its host as one or more devices. It can pass through its USB host adapter, network adapter, and m.2 slot, and act as a GPU. It supports SR-IOV. You can boot off it. With the right hardware support, it should be able to stay awake while the host powers off or reboots.
 +
 ====PCIe networking==== ====PCIe networking====
 These products: These products:
Line 146: Line 216:
     * OCP slot, maybe?     * OCP slot, maybe?
     * PCI and ISA bridges     * PCI and ISA bridges
 +  - USB device holder
 +  - SATA/SAS and NVMe backplanes
 +
 +The paradigm is "assign devices to hosts" rather than "hosts communicating". The storage shelves don't need to have file services or even know about filesystems. They will show up as a PCI device with storage attached to whatever system they're connected. This is a "peripheral area network" and if CXL becomes part of the mix, it's "memory area network" as well.
 +
 +Everything except retimer cards needs an API and UI for managing things.
  
 ====Better Audio Stack==== ====Better Audio Stack====
Line 158: Line 234:
 ====Better DAW==== ====Better DAW====
 Core concept is a piece of virtual tape that's infinitely long, infinitely wide, and has an infinite number of tape heads that can all be accessed remotely. A recording session is a server you log into, send recorded audio, receive mixed audio, and update a database of what should play when and with what settings. Core concept is a piece of virtual tape that's infinitely long, infinitely wide, and has an infinite number of tape heads that can all be accessed remotely. A recording session is a server you log into, send recorded audio, receive mixed audio, and update a database of what should play when and with what settings.
 +
 +====RDMA to a Commodore 64====
 +The 6502 can't drive the C64's memory anywhere near full-speed, but the ROM port has a DMA pin, so a DMA-capable cartridge can do impossibly cool things. I'd like to find a good demo playback engine that already exists, and adapt it to play back data being streamed in over a network.
  
 ====Better Mixer==== ====Better Mixer====
 FIXME FIXME
nndocs/sandbox.1726780079.txt.gz · Last modified: 2024/09/19 21:07 by naptastic