您现在的位置是:网站首页>技术百科技术百科
掌握以太网上的 ATA
小大寒2024-01-01[技术百科]博学多闻
掌握以太网上的 ATA本文详细介绍了通过 AoE(以太网上的 ATA)实现块设备导入导出的步骤,包括目标节点和启动器的配置。AoE 由于其运行在数据链路层而避免了 IP 开销,提供了更高效、安全的存储访问方式,适合简单易用的存储场景。《 GitHub 上 OpenAoE 项目主页。》
掌握以太网上的 ATA
在早期,如果您想将外部块存储设备连接到服务器,通常会通过存储区域网络(SAN)将其映射为逻辑单元(LU)。最初,光纤通道(FC)协议是主要方法,而后期基于 IP 的 iSCSI 协议在多数数据中心逐渐取代了 FC。这些协议功能强大但复杂,学习和掌握需要较高的技术门槛。
Brantley Coile 公司为此开发了 ATA over Ethernet (AoE) 规范,这一标准已经发布十多年。这项技术由 Brantley Coile 用作他当时创办的公司 Coraid(后更名为 Brantley Coile 公司)的基础框架。之后,这项技术根据 GPLv2 开源协议向公众开放。
AoE 的核心优势在于其简单性。它运行在网络 OSI 模型的数据链路层(第 2 层),避免了网络层(第 3 层)的 IP 开销。因此,AoE 导出的块设备无法通过 IP 访问。这不仅提高了网络性能,还增加了安全性:要访问设备,您必须物理连接到托管这些设备的以太网交换机。
AoE 的实现方式是将传统 ATA 命令封装到以太网帧中,并通过以太网网络传输,而非通过 SATA 或传统的 40 针带状电缆传输。
配置目标
以下示例需要至少两个运行 Linux 的节点。其中一个节点将作为目标导出块设备,另一个节点将作为发起方导入块设备。
安装 AoE 服务器守护程序:
$ sudo aptitude install vblade
确定要导出的块设备和使用的以太网端口。例如,通过以太网端口 enps0s3
导出 /dev/sdb
:
$ sudo vblade 1 1 enps0s3 /dev/sdb
也可以创建一个空文件并导出:
$ dd if=/dev/zero of=aoe.block0 bs=1M count=128
$ sudo vblade 1 2 enps0s3 aoe.block0
配置启动器
安装 AoE 启动器工具:
$ sudo aptitude install aoetools
加载内核模块:
$ sudo /sbin/modprobe aoe
设置超时值(例如 10 秒):
$ sudo /sbin/modprobe aoe aoe_deadsecs=10
定义接口以扫描和导入卷:
$ sudo aoe-interfaces enp0s3
启动服务:
$ sudo service aoetools start
扫描并导入卷:
$ sudo aoe-discover
列出已发现的内容:
$ sudo aoe-stat
访问块设备:
$ ls /dev/etherd/e1*
/dev/etherd/e1.1 /dev/etherd/e1.2
$ sudo mkfs.ext4 /dev/etherd/e1.1
$ sudo mount /dev/etherd/e1.1 /mnt
通过上述步骤,您可以轻松配置 AoE 环境,从而获得更高效且安全的块存储解决方案。
阅读完毕,很棒哦!
上一篇:无锁有序链表的实现