Tarkvaraline RDMA

Allikas: Imre kasutab arvutit
Redaktsioon seisuga 22. aprill 2024, kell 03:34 kasutajalt Imre (arutelu | kaastöö)
Mine navigeerimisribaleMine otsikasti

Sissejuhatus

rxe abil saab pidada tarkvaralist RDMA lahendust. Võib olla on sellise tegevuse peamine põhjus nö väga odavalt infiniband laadse elamuse saamine.

Tööpõhimõte

Väited

  • infiniband võrgu jaoks on rdma midagi sellist nagu on ethernet võrgu jaoks tcp/ip
  • üldiselt rdma ime seisneb selles, et asjaosaliste andmevahetuse juures jääb ära nö tcp/ip stack kasutamine; st põhimõtteliselt rakenduskihist (user space) antakse sõnum füüsilisele seadmele ja see toimetab ta teisele asjaosalisele üle infiniband võrgu; see infiniband võrk võib siis olla realiseeritud nii nagu ta parasjagu on, nt üle ip-over-ethernet st tavalise ethernet võrgu antud näite puhul; ideaalsel juhul on kasutada autentne infiniband riistvara ja see siis tegeleb selle sõnumiga, erinevalt tcp/ip olukorrast mille puhul arvuti üldotstarbeline protsessor tegeleb tcp/ip protokolli realiseerimisega (suurema sõnumi tükkideks tegemisega, järjestamisega, kiirusega reguleerimisega jne; teises otsas kokku panemisega jne)
  • kui arvuti sees sõnumid liiguvad ühe asjaosalise käest teisele, siis paljuski väljendub see selles, et andmed asuvad kuskil mälus ja siis seda füüsilist mälu käsitlevad erinevad asjaosalised (user space programm, kernel, füüsilise võrgukaardi draiver jne); st looglise sõnumi liiklumisega ei kaasne tingimata tema füüsilist liikumist

Operatsioonisüsteemi ettevalmistamine

Tundub, et tarkvaralise RDMA kasutamiseks sobib kasutada nt tavalist Debian v. 12 operatsioonisüsteemi, sh tavaliste repodega. Vajalik tarkvara on selline

# apt-get install rdma-core
# apt-get install perftest
# apt-get install ibverbs-utils
# apt-get install infiniband-diags
# apt-get install ibverbs-providers

Muu hulgas käivitatakse rdma-ndd (RDMA device Node Description update daemon) protsess

root@pve-sdn-01:~# systemctl status rdma-ndd
● rdma-ndd.service - RDMA Node Description Daemon
     Loaded: loaded (/lib/systemd/system/rdma-ndd.service; static)
     Active: active (running) since Mon 2024-04-22 00:29:48 EEST; 3h 4min ago
       Docs: man:rdma-ndd
   Main PID: 718380 (rdma-ndd)
      Tasks: 1 (limit: 9395)
     Memory: 396.0K
        CPU: 11ms
     CGroup: /system.slice/rdma-ndd.service
             └─718380 /usr/sbin/rdma-ndd --systemd

Apr 22 00:29:48 pve-sdn-01 systemd[1]: Starting rdma-ndd.service - RDMA Node Description Daemon...
Apr 22 00:29:48 pve-sdn-01 systemd[1]: Started rdma-ndd.service - RDMA Node Description Daemon.

Tarkvaralised seadmed

Ühes arvutis sobib öelda, eeldusel, et enp6s19 seade on tavaline füüsiline ethernet võrguseade (nt Proxmox platvormil töötavas virtuaalses arvutis virtio seade)

root@pve-sdn-01:~# modprobe rdma_rxe
root@pve-sdn-01:~# rdma link add rxe0 type rxe netdev enp6s19

ning teises arvutis sobib öelda

root@pve-sdn-02:~# modprobe rdma_rxe
root@pve-sdn-02:~# rdma link add rxe0 type rxe netdev enp6s19

Tulemusena on arvutites rdma seade

root@pve-sdn-02:~# rdma link
link rxe0/1 state ACTIVE physical_state LINK_UP netdev enp6s19

root@pve-sdn-02:~# ibv_devinfo 
hca_id:	rxe0
	transport:			InfiniBand (0)
	fw_ver:				0.0.0
	node_guid:			be24:11ff:fec2:de40
	sys_image_guid:			be24:11ff:fec2:de40
	vendor_id:			0xffffff
	vendor_part_id:			0
	hw_ver:				0x0
	phys_port_cnt:			1
		port:	1
			state:			PORT_ACTIVE (4)
			max_mtu:		4096 (5)
			active_mtu:		1024 (3)
			sm_lid:			0
			port_lid:		0
			port_lmc:		0x00
			link_layer:		Ethernet

root@pve-sdn-01:~# ibstat
CA 'rxe0'
	CA type: 
	Number of ports: 1
	Firmware version: 
	Hardware version: 
	Node GUID: 0xbe2411fffe7cec56
	System image GUID: 0xbe2411fffe7cec56
	Port 1:
		State: Active
		Physical state: LinkUp
		Rate: 2.5
		Base lid: 0
		LMC: 0
		SM lid: 0
		Capability mask: 0x00010000
		Port GUID: 0xbe2411fffe7cec56
		Link layer: Ethernet

rdma kontakti kontrolliks sobib proovida nt, ühes arvutis

root@pve-sdn-02:~# ib_send_bw -i 1 -d rxe0

************************************
* Waiting for client to connect... *
************************************
---------------------------------------------------------------------------------------
                    Send BW Test
 Dual-port       : OFF		Device         : rxe0
 Number of qps   : 1		Transport type : IB
 Connection type : RC		Using SRQ      : OFF
 PCIe relax order: ON
 ibv_wr* API     : OFF
 RX depth        : 512
 CQ Moderation   : 1
 Mtu             : 1024[B]
 Link type       : Ethernet
 GID index       : 1
 Max inline data : 0[B]
 rdma_cm QPs	 : OFF
 Data ex. method : Ethernet
---------------------------------------------------------------------------------------
 local address: LID 0000 QPN 0x001f PSN 0xde6173
 GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:116:202
 remote address: LID 0000 QPN 0x001f PSN 0x82142e
 GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:116:201
---------------------------------------------------------------------------------------
 #bytes     #iterations    BW peak[MB/sec]    BW average[MB/sec]   MsgRate[Mpps]
 65536      1000             0.00               118.36 		   0.001894
---------------------------------------------------------------------------------------

ja teises arvutis

root@pve-sdn-01:~# ib_send_bw -i 1 192.168.116.202 -d rxe0
---------------------------------------------------------------------------------------
                    Send BW Test
 Dual-port       : OFF		Device         : rxe0
 Number of qps   : 1		Transport type : IB
 Connection type : RC		Using SRQ      : OFF
 PCIe relax order: ON
 ibv_wr* API     : OFF
 TX depth        : 128
 CQ Moderation   : 1
 Mtu             : 1024[B]
 Link type       : Ethernet
 GID index       : 1
 Max inline data : 0[B]
 rdma_cm QPs	 : OFF
 Data ex. method : Ethernet
---------------------------------------------------------------------------------------
 local address: LID 0000 QPN 0x001f PSN 0x82142e
 GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:116:201
 remote address: LID 0000 QPN 0x001f PSN 0xde6173
 GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:116:202
---------------------------------------------------------------------------------------
 #bytes     #iterations    BW peak[MB/sec]    BW average[MB/sec]   MsgRate[Mpps]
 65536      1000             164.59             118.29 		   0.001893
---------------------------------------------------------------------------------------

Kasulikud lisamaterjalid

  • man rxe - Software RDMA over Ethernet