Docker是目前非常流行的容器化技術(shù),它為應(yīng)用程序提供了一個(gè)隔離的運(yùn)行環(huán)境,在不同的操作系統(tǒng)、語(yǔ)言和開(kāi)發(fā)框架間無(wú)需擔(dān)心環(huán)境配置的問(wèn)題,也可以方便地構(gòu)建和部署應(yīng)用程序。而mlx5則是為提高網(wǎng)絡(luò)性能而設(shè)計(jì)的Mellanox InfiniBand網(wǎng)絡(luò)卡。
Docker與mlx5的結(jié)合可以提高容器化應(yīng)用程序的網(wǎng)絡(luò)性能,以滿足高性能計(jì)算、云計(jì)算、容器化集群等大規(guī)模應(yīng)用場(chǎng)景的需求。在以往,傳統(tǒng)TCP/IP協(xié)議的瓶頸限制了網(wǎng)絡(luò)的性能,而InfiniBand網(wǎng)絡(luò)卡可以極大地提高網(wǎng)絡(luò)的吞吐量和帶寬。mlx5芯片可以使用RoCE(RDMA over Converged Ethernet)以太網(wǎng)協(xié)議來(lái)提升網(wǎng)絡(luò)傳輸性能,降低CPU使用率,以及減少網(wǎng)絡(luò)延遲。
為了讓容器化應(yīng)用程序能夠受益于InfiniBand網(wǎng)絡(luò),我們需要在Docker中使用mlx5網(wǎng)絡(luò)插件。該插件是由Mellanox官方提供的,支持在容器內(nèi)使用基于RoCE的RDMA網(wǎng)絡(luò),實(shí)現(xiàn)高性能、低延遲的網(wǎng)絡(luò)傳輸。
docker run --net=mlx5:1 --cap-add net_admin --device=/dev/infiniband/rdma_cm --device=/dev/infiniband/uverbs0 -it ubuntu:latest
在使用mlx5網(wǎng)絡(luò)插件時(shí),需要指定--net參數(shù)為mlx5:1,然后通過(guò)--cap-add net_admin和--device參數(shù)指定容器可以訪問(wèn)InfiniBand網(wǎng)絡(luò)設(shè)備。這樣容器中的應(yīng)用程序就可以使用高性能、低延遲的InfiniBand網(wǎng)絡(luò)傳輸數(shù)據(jù)。
Docker與mlx5的結(jié)合,使得容器化應(yīng)用程序可以更好地滿足高性能、低延遲、高可擴(kuò)展性的網(wǎng)絡(luò)需求。在處理數(shù)據(jù)密集型、計(jì)算密集型等應(yīng)用的場(chǎng)景中,榮耀Docker與mlx5的結(jié)合將會(huì)顯得尤為重要。