[翻译]iser是什么?

iser是什么?
翻译自: https://community.mellanox.com/docs/DOC-1466
参考:

本文适用于那些想弄明白InfiniBand/RDMA/ISER是什么的新手,以及使用InfiniBand/RDMA/ISER的优势有哪些?

iser是什么?
iser代表"iSCSI Extensions for RDMA".iser是数据传输规范iscsi(一个适用于TCP/IP的存储网络标准)的一个扩展.
iser使用了iscsi组件,同时也有rdma套件(suite)的优势.

iser的link protocol是什么?
iser基于iscsi的rdma传输,link protocol可以是任何受到支持的速度(10,40,56,100Gb/s)的Ethernet 或者Infiniband/

iser的优势有哪些?
1.iser使用rdma套件(suite)来为块存储传输(block storage transfers)提供高带宽(zero time copy behavior).
  基于这一事实,iser消除了tcp/ip 处理过载同时保证了对iscsi协议的兼容性.

2.除此之外,iser有最低的延迟和最低的cpu使用.此外,iser 有iscsi协议的稳定性和益处,比如安全,高可用等等.
3.比iscsi,fc,fcoe都要快,比srp更容易管理.

部署iser需要满足什么要求?
1.使用scsi和iscsi层的应用程序
2.passing rmda的网络兼容性
  2.1支持rdma的Adapter cards(Ethernet of InfiniBand)---译者注:估计是Ethernet or InfiniBand
  2.2以太网交换机(带flow control or PFC)
  2.3InfiniBand 交换机
3.支持iser的target



哪些存储target支持iser?
1.Linux targets:
  1.1 Linux IO(LIO) 
  1.2 Linux iSCSI target framework (TGT)
  1.3 Generic SCSI target subsystem for Linux (SCST)
2.Oracle ZFS, Violin Memory, Zadara Saratoga Speed, HP SL4540 Moonshot server and other tailored storage targets.


TGT, LIO , SCST这三者的区别?
TGT LIO SCST
User space Kernel space (in-tree) Kernel space (out-of-tree)
iSER support since 2008 iSER support since kernel 3.10 iSER support since 2014
Linux SCSI target framework (tgt) project Linux SCSI Target SCST: A Generic SCSI Target Subsystem for Linux


Storage Protocol Comparison





Storage Protocol iSER (iSCSI RDMA) iSCSI (TCP) FC FCoE SMB Direct NFSoRDMA NVMe over Fabrics
Access Block Block Block Block File File Block
Transport (link protocol) Ethernet (RoCE), InfiniBand Ethernet FC Ethernet Ethernet (RoCE), InfiniBand Ethernet (RoCE), InfiniBand Ethernet (RoCE), InfiniBand
RDMA Yes No No No Yes Yes Yes




OpenStack Support
iSER based on TGT target is inbox in OpenStack since Havana release.
iSER data mover for OpenStack accelerates:
  Storage access
  VM migration
  Data/VM replication


iSCSI/iSER Architecture

The transport layer iSER and/or iSCSI/TCP are transparent to the user. The configuration is simple.



以下是对你提供的 `Makefile` 的逐行中文翻译与解释: ```makefile # 指定编译器为 GCC CC = gcc # 编译选项: # -Wall: 启用所有常用警告 # -Wextra: 启用额外的警告 # -g: 生成带有调试信息的代码 # $(INCLUDES): 包含头文件的路径 CFLAGS = -Wall -Wextra -g $(INCLUDES) # 链接选项,用于链接 SQLite3 库 LDFLAGS = -lsqlite3 # 指定头文件包含路径 INCLUDES = -Icli -Iser -Isql # 客户端源文件列表:匹配 cli/ 目录下的所有 .c 文件 CLI_SRC = $(wildcard cli/*.c) # 客户端对象文件列表:将 .c 替换为 .o CLI_OBJ = $(CLI_SRC:.c=.o) # 服务端源文件列表:匹配 ser/ 目录下的所有 .c 文件 SER_SRC = $(wildcard ser/*.c) # 服务端对象文件列表:将 .c 替换为 .o SER_OBJ = $(SER_SRC:.c=.o) # SQLite 模块源文件和对象文件 SQL_SRC = ser/sqlite.c SQL_OBJ = $(SQL_SRC:.c=.o) # 要生成的目标可执行文件 TARGETS = client server # 默认目标:构建 client 和 server all: $(TARGETS) # 编译客户端可执行文件 client: $(CLI_OBJ) $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) # 编译服务端可执行文件 server: $(SER_OBJ) $(SQL_OBJ) $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) # 通用编译规则:将 .c 文件编译为 .o 文件 %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ # 清理目标:删除所有编译生成的文件 clean: rm -f $(CLI_OBJ) $(SER_OBJ) $(SQL_OBJ) $(TARGETS) # 声明伪目标,避免与同名文件冲突 .PHONY: all clean ``` ### 总结解释: 该 `Makefile` 用于构建一个包含客户端和服务器端的 C 语言项目: - 使用 `gcc` 编译器,启用所有警告并包含调试信息。 - 使用 `-I` 指定了头文件搜索路径。 - 客户端和服务端分别编译各自目录下的 `.c` 源文件为 `.o` 对象文件。 - 最终链接生成两个可执行程序:`client` 和 `server`,并链接 SQLite3 库。 - 提供了 `clean` 清理命令,删除所有中间文件和最终生成的可执行文件。 - 使用了 `wildcard` 等 Makefile 函数实现自动化构建,避免手动维护文件列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值