簡介

乙太網上的 ATA (ATA over Ethernet) 是一種網路協議,可在區域網 (LAN) 上提供對塊儲存的簡單訪問。

適用於 2.6 和 3.x 核心的 EtherDrive (R) HOWTO 位於 ...

它包含許多技巧和提示!請特別注意,推薦的虛擬記憶體調優:

aoetools 是與此驅動程式配合使用的使用者態程式。aoetools 在 sourceforge 上。

此 Documentation/admin-guide/aoe 目錄中的指令碼旨在記錄驅動程式的使用,如果您安裝 aoetools,則這些指令碼不是必需的。

建立裝置節點

udev 使用者應該會發現塊裝置節點自動建立,但要建立所有必要的裝置節點,請使用 udev.txt(在此目錄中)中提供的 udev 配置規則。

有一個 udev-install.sh 指令碼,展示瞭如何在您的系統上安裝這些規則。

還有一個 autoload 指令碼,展示瞭如何編輯 /etc/modprobe.d/aoe.conf 以確保在必要時載入 aoe 模組。然而,預載入 aoe 模組優於自動載入,因為 AoE 發現需要幾秒鐘。當第一次執行命令時 AoE 裝置不存在,但一秒鐘後出現時,可能會令人困惑。

使用裝置節點

“cat /dev/etherd/err” 會阻塞,等待錯誤診斷輸出,例如任何重傳的資料包。

“echo eth2 eth4 > /dev/etherd/interfaces” 告訴 aoe 驅動程式將乙太網上的 ATA 流量限制到 eth2 和 eth4。出於安全考慮,應忽略來自不受信任網路的 AoE 流量。另請參閱下面描述的 aoe_iflist 驅動程式選項。

“echo > /dev/etherd/discover” 告訴驅動程式查詢可用的 AoE 裝置。

將來,這些字元裝置可能會消失,並被 sysfs 對應項取代。使用 aoetools 中的命令可以使戶不受這些實現細節的影響。

塊裝置的命名如下:

e{shelf}.{slot}
e{shelf}.{slot}p{part}

... 因此,“e0.2” 是第一個盤架(盤架地址零)中從左數第三個刀片(插槽 2)。這是整個磁碟。該磁碟上的第一個分割槽將是 “e0.2p1”。

使用 sysfs

/sys/block 中的每個 aoe 塊裝置都具有 state、mac 和 netif 的額外屬性。當裝置準備好進行 I/O 時,state 屬性為“up”;如果檢測到但無法使用,則為“down”。“down,closewait”狀態表示裝置仍處於開啟狀態,直到關閉後才能再次啟動。

mac 屬性是遠端 AoE 裝置的乙太網地址。netif 屬性是與遠端 AoE 裝置通訊的 localhost 上的網路介面。

此目錄中有一個指令碼以方便的方式格式化此資訊。aoetools 使用者應使用 aoe-stat 命令。

root@makki root# sh Documentation/admin-guide/aoe/status.sh
   e10.0            eth3              up
   e10.1            eth3              up
   e10.2            eth3              up
   e10.3            eth3              up
   e10.4            eth3              up
   e10.5            eth3              up
   e10.6            eth3              up
   e10.7            eth3              up
   e10.8            eth3              up
   e10.9            eth3              up
    e4.0            eth1              up
    e4.1            eth1              up
    e4.2            eth1              up
    e4.3            eth1              up
    e4.4            eth1              up
    e4.5            eth1              up
    e4.6            eth1              up
    e4.7            eth1              up
    e4.8            eth1              up
    e4.9            eth1              up

使用 /sys/module/aoe/parameters/aoe_iflist(或更好的,下面討論的驅動程式選項)而不是 /dev/etherd/interfaces 將 AoE 流量限制到給定空格分隔列表中的網路介面。與舊的字元裝置不同,sysfs 條目既可讀又可寫。

在設定允許的介面列表後觸發發現會有所幫助。aoetools 軟體包為此目的提供了 aoe-discover 指令碼。您也可以直接使用上面描述的 /dev/etherd/discover 特殊檔案。

驅動程式選項

內建 aoe 驅動程式有一個啟動選項和相應的模組引數 aoe_iflist。如果沒有此選項,所有網路介面都可以用於乙太網上的 ATA。以下是模組引數的使用示例:

modprobe aoe_iflist="eth1 eth3"

aoe_deadsecs 模組引數確定驅動程式等待 AoE 裝置對 AoE 命令提供響應的最長時間(以秒為單位)。aoe_deadsecs 秒過去後,AoE 裝置將被標記為“down”。支援將值設定為零用於測試目的,它會使 aoe 驅動程式永遠嘗試 AoE 命令。

aoe_maxout 模組引數預設為 128。這是在同一時間傳送到 AoE 目標的未響應資料包的最大數量。

aoe_dyndevs 模組引數預設為 1,這意味著驅動程式將根據發現順序為發現的 AoE 目標分配一個塊裝置次要號。使用動態次要裝置號時,可以支援更大範圍的 AoE 盤架和插槽地址。udev 使用者永遠不必考慮次要號。使用 aoe_dyndevs=0 允許使用 aoetools 中的 aoe-mkshelf 指令碼透過靜態次要號方案預建立裝置節點。