Pure SONiC 是 SONiC 的版本,它消除了對(duì)供應(yīng)商的依賴。社區(qū)開發(fā)、公開可用和 100% 開源使您能夠構(gòu)建與所需社區(qū)分支同步的純 SONiC 映像。這意味著 SONiC 的每一行代碼和 SAI ( switch abstraction interface )的 NVIDIA 實(shí)現(xiàn)只需點(diǎn)擊一下 主映像 。
NVIDIA 當(dāng)您選擇 Pure SONiC 時(shí),我們將致力于您的成功。為了確保 Pure SONiC 得到強(qiáng)化和限定, NVIDIA 建議使用特定的公共哈希來構(gòu)建映像,這是一種在特定時(shí)間點(diǎn)對(duì) Git 存儲(chǔ)庫(kù)進(jìn)行快照的機(jī)制。通過廣泛的 QA ,在所有 NVIDIA 平臺(tái)上驗(yàn)證傳遞給用戶的每個(gè)公共散列。此外, NVIDIA 承認(rèn)需要有價(jià)值的文件。發(fā)行說明和用戶手冊(cè)與特定的公共哈希綁定。
建立一個(gè)純粹的聲波圖像
下面是我如何建立我的純聲波圖像,包括 ZTP ,運(yùn)行在我的 NVIDIA Mellanox Spectrum 開放式以太網(wǎng)交換機(jī)上。我的解決方案受到了關(guān)于 GitHub 的 構(gòu)建 SONiC 交換機(jī)映像 教程的啟發(fā)。默認(rèn)情況下,在回購(gòu)的 生成配置文件 中禁用 ZTP 。
Spectrum 交換機(jī)預(yù)裝了 ONIE ( open network install environment ),這是一個(gè)引導(dǎo)加載程序,提供了在裸機(jī)交換機(jī)系統(tǒng)上安裝任何網(wǎng)絡(luò)操作系統(tǒng)的環(huán)境。 ONIE 允許最終用戶自動(dòng)安裝網(wǎng)絡(luò)操作系統(tǒng),作為數(shù)據(jù)中心配置的一部分,類似于 ONIE 交換機(jī)管理 Linux 服務(wù)器的方式。
我的構(gòu)建服務(wù)器由 24 核 CPU 、 250 GB 構(gòu)建存儲(chǔ)和 64 GB RAM 組成,運(yùn)行在 Ubuntu16.04 上, Docker 版本 18.03.0-ce 、 Python 和 jinja2 。我發(fā)現(xiàn)我的構(gòu)建配置至少需要 100 GB 的可用磁盤空間。最終的構(gòu)建目錄消耗了大約 30gb 。在構(gòu)建時(shí)間對(duì)業(yè)務(wù)至關(guān)重要的情況下,我建議升級(jí) CPU 和 RAM 以允許更多的內(nèi)核并行工作,從而縮短構(gòu)建時(shí)間。
出于自動(dòng)化和代碼重用的目的,我將代碼分為三個(gè)短文件:
build.cfg :初始化公共環(huán)境變量并由其他文件進(jìn)行源處理。
gitsonic.sh :獲取公共 git 存儲(chǔ)庫(kù)源代碼。
build.sh :執(zhí)行生成。
運(yùn)行腳本執(zhí)行構(gòu)建過程。
第一步:創(chuàng)建 build.cfg
# An example to hash that was qualified by NVIDIA
SONICBRANCH=201911
COMMITHASH="bea968b"
BLDBRANCH="${SONICBRANCH}"
BUILD_NUMBER="00005"
let BLDNUM="${BUILD_NUMBER}"
#ZTP is disabled by default per community decision. I found it useful to enable in my build, more
#options are available in the file ./rules/config
ENABLE_ZTP="y"
SONIC_IMAGE_VERSION="SONIC.${SONICBRANCH}.${BLDNUM}-${COMMITHASH}_Internal"
SONIC_OVERRIDE_BUILD_VARS='
SONICIMAGE_VERSION=SONIC.${SONICBRANCH}.${BLDNUM}-${COMMITHASH}_Internal
BUILD_NUMBER=${BLDNUM} ENABLE_ZTP=y'
BLDDIR="./sonic-buildimage_${BLDBRANCH}_${BUILD_NUMBER}_${COMMITHASH}_ZTP"
第二步:創(chuàng)建 sonicgit.sh
#!/bin/bash
source ./build.cfg
if [ -d "${BLDDIR}" ];then
echo "directory sonic-buildimage already exists, aborting git"
exit 1
fi
# git clone the top-level
# source code from the public repository, SONICBRANCH=201911
git clone -b ${SONICBRANCH} https://github.com/Azure/sonic-buildimage.git
# move the cloned source to a build-specific named directory
# avoid overwriting earlier versions that you may need.
mv ./sonic-buildimage "${BLDDIR}"
# If you are making any changes to the latest checked in branch, you must make
# changes to the configuration.
# Because you are making changes, create a build branch based on the specific commit hash
#this git branch information shows up in the build image,
#when you run command $show version from the switch command line.
cd "${BLDDIR}"
git checkout -b "${BLDBRANCH}" ${COMMITHASH}
# the git clone step only pulls the top-level module.
# the underlying submodules must be recursively
# init-ed and updated.
git submodule update --init --recursive
#display the status
echo "${BLDDIR}"
git status | grep branch
第 3 步:創(chuàng)建 build.sh
#!/bin/bash
source ./build.cfg
#Helper functions start###
function checkErrors()
{
X=`grep -i -c "${1}" "${2}"`
if [ "${X}" != "0" ];then
grep -i -n "${1}" "${2}"
fi
}
function doSetup()
{
CONFIGZTP="ENABLE_ZTP=${ENABLE_ZTP}"
CONFIGSONIC="{$CONFIGZTP}"
}
function doMakeConfig()
{
#Execute make configure once to configure ASIC
#make configure PLATFORM=[ASIC_VENDOR]
make configure PLATFORM=mellanox
}
# Build SONiC image
function doMake()
{
LOGFILE="../logs/${BLDDIR}.log"
echo "time make
SONIC_BUILD_JOBS=24 ${SONIC_OVERRIDE_BUILD_VARS}
target/sonic-mellanox.bin" > "${LOGFILE}"
time make SONIC_BUILD_JOBS=24 ${SONIC_OVERRIDE_BUILD_VARS} target/sonic-mellanox.bin | tee "${LOGFILE}"
checkErrors "fail" "${LOGFILE}"
checkErrors "warning" "${LOGFILE}"
checkErrors "error" "${LOGFILE}"
}
#Helper functions end###
cd "${BLDDIR}"
doSetup
doMakeConfig
doMake
概括
步驟 1-3 中描述的構(gòu)建過程將生成啟用 ZTP 的純聲波圖像。一些人會(huì)認(rèn)為,這張圖片展示了開放網(wǎng)絡(luò)的最佳狀態(tài):構(gòu)建一個(gè)開源操作系統(tǒng),消除對(duì)供應(yīng)商的依賴。
關(guān)于作者
Yuval Borenstein 是 NVIDIA 的以太網(wǎng)交換機(jī)產(chǎn)品經(jīng)理。在此之前的幾年里, Borenstein 先生在 NVIDIA 擔(dān)任過多個(gè)芯片設(shè)計(jì)職位,負(fù)責(zé)開發(fā) InfiniBand 和以太網(wǎng)交換機(jī)。尤瓦爾擁有以色列理工學(xué)院電子工程學(xué)士學(xué)位和特拉維夫大學(xué)和西北大學(xué)的聯(lián)合工商管理碩士學(xué)位。
審核編輯:郭婷
-
cpu
+關(guān)注
關(guān)注
68文章
11192瀏覽量
221748 -
RAM
+關(guān)注
關(guān)注
8文章
1396瀏覽量
119455 -
服務(wù)器
+關(guān)注
關(guān)注
13文章
10009瀏覽量
90314
發(fā)布評(píng)論請(qǐng)先 登錄
NVIDIA RTX AI加速FLUX.1 Kontext現(xiàn)已開放下載
通過NVIDIA Cosmos模型增強(qiáng)機(jī)器人學(xué)習(xí)
超聲波換能器:原理與多領(lǐng)域應(yīng)用解析
超聲波換能器--聲波世界的 “神奇魔法師”
自動(dòng)駕駛中純視覺替代不了激光雷達(dá)?
NVIDIA Isaac Sim與NVIDIA Isaac Lab的更新
超聲波清洗的原理是什么?超聲波清洗是如何起作用的?

如何使用NVIDIA建立純聲波圖像
評(píng)論