您现在的位置是:网站首页>技术百科技术百科

掌握以太网上的 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 环境,从而获得更高效且安全的块存储解决方案。

阅读完毕,很棒哦!

文章评论

站点信息

  • 网站地址:www.xiaodahan.com
  • 我的QQ: 3306916637