当前位置: 首页 > news >正文

界面设计做的好的网站上海国际贸易有限公司

界面设计做的好的网站,上海国际贸易有限公司,网络推广竞价,深圳网页制作培训什么是nvme nvme ssd和普通ssd区别 ssd是固态硬盘#xff0c;普通的ssd配的是SATA口#xff08;AHCI协议#xff09;#xff0c;nvme ssd配的是PCIe口#xff08;nvme传输协议#xff09; 相比普通SSD的SATA口#xff0c;nvme的PCIe口有巨大的性能优势。 更多详情见普通的ssd配的是SATA口AHCI协议nvme ssd配的是PCIe口nvme传输协议 相比普通SSD的SATA口nvme的PCIe口有巨大的性能优势。 更多详情见http://t.csdn.cn/i0EvW 什么是nvmeof nvmeof就是 NVMe over Fabrics  简介 Fabrics 可理解为高速网络。NVMe over Fabrics 说白了就是把本地NVMe协议扩展成了网络的NVMe原先的主板总线变成了RDMA等高速网络。扩展了原先NVME的协议。 为什么需要nvmeof NVMe协议的PCIe 接口的使用使得处理单元和硬盘之间的传输速度快很多但是一但磁盘不在本机而是分布式的在其他机器上跨网络去读其他机器的磁盘网络又成了瓶颈。 “数据中心的问题仍然存在于存储网络协议上。尽管 NVMe 兴起但它的收益仅限于每个单独的设备。事实上闪存和其他企业级昂贵设备例如 AFA并不是为了将其卓越的性能隔离在机箱内。相反它们旨在用于大型并行计算机集群将它们与其他和多个设备例如其他服务器和存储连接起来。这种设备的互连就是我们所说的结构即存储网络包括交换机、路由器、协议桥、网关设备和电缆。” 所以要使用新型高速网络Fabrics。 “2016 年推出了 NVMe-oF 行业标准。协议规范使用以太网、光纤通道、RoCE 或 InfiniBand 将 NVMe 的高性能性能从存储阵列控制器延申到Fabrics高速网络。 Fabrics 建立在发送和接收消息的概念之上而端点之间没有共享内存。NVMe 结构消息传输将 NVMe 命令和响应封装到基于消息的系统中该系统包括一个或多个 NVMe 命令或响应。” 相比与普通的 NVMe 命令NVMe over Fabrics 扩展了 NVMe 标准命令和数据传输方式比如增加了互联命令discoverconnect、Property Get/Set、Authentication Send/Receive等。可以让 发起(读写者--initiator 端发现并连接target 端磁盘或带有磁盘的服务器 initiator 端又称为host/client端initiator 配置前提RDMA基础环境已搭建。通过NVMe 互联命令探测和连接target 端 NVMe SSD 即可。 nvme over pcie nvme over tcp nvme over fabric nvme over rdma nvme over roce https://www.flashmemorysummit.com/English/Collaterals/Proceedings/2017/20170808_FA12_PartB.pdf NVMe 的高速网络Fabrics 参考什么是 NVMe-oF - 知乎 NVMe 支持和使用的三种高速网络Fabrics 1、基于RDMA 的 NVMe-oF、 2、基于光纤通道的 NVMe-oF 3、基于 TCP 的 NVMe-oF。 NVMe-oF over RDMA 基于RDMA的高速网络Fabrics RDMA即 Remote Direct Memory Access是一种绕过远程主机 OS kernel 访问其内存中数据的技术概念源自于 DMA 技术。在 DMA 技术中外部设备PCIe 设备能够绕过 CPU 直接访问 host memory不仅可以访问本地主机的内存还能够访问另一台主机上的用户态内存 通俗的看成是远程的DMA技术。 RDMA允许用户态的应用程序直接读取或写入远程内存不经过操作系统无内核干预和内存拷贝发生节省了大量 CPU 资源提高了系统吞吐量、降低了系统的网络通信延迟。 更多介绍见https://blog.csdn.net/bandaoyu/article/details/112859853 典型的 RDMA 实现包括verbs 、RoCE、InfiniBand、Omni-Path 和 iWARP。目前使用最多的是 RoCE、InfiniBand 和 iWARP。 NVMe over Fibre Channel NVMe over FC 使用 NVMe over Fibre Channel (FC) 的组合通常称为 FC-NVMe、NVMe over FC有时也称为 NVMe/FC。光纤通道是一种用于在存储阵列和服务器之间传输数据的强大协议大多数企业 SAN 系统都使用它。在 FC-NVMe 中命令被封装在 FC 帧中。它基于标准 FC 规则与支持访问共享 NVMe 闪存的标准 FC 协议相匹配。SCSI 命令封装在 FC 帧中但是将它们解释和转换为 NVMe 命令会带来性能损失。 基于 TCP/IP 的 NVMe 这种传输类型是 NVMe-oF 中的最新发展之一。NVMe over TCP传输控制协议使用 NVMe-oF 和 TCP 传输协议跨 IP以太网网络传输数据。NVMe 通过以太网作为物理传输在 TCP 数据报内传输。尽管有 RDMA 和光纤通道但 TCP 提供了一种可能更便宜、更灵活的替代方案。此外与同样使用以太网的 RoCE 相比NVMe/TCP 的性能更像 FC-NVMe因为它们使用消息传递语义进行 I/O。 将 NVMe-oF 与 RDMA、光纤通道或 TCP 结合使用可构建完整的端到端 NVMe 存储解决方案。这些解决方案提供显着的高性能同时通过 NVMe 保持极低的延迟。 NVMe over RDMA over Converged Ethernet (RoCE) 在 RDMA 协议中RoCE 脱颖而出。我们知道 RDMA 和 NVMe-oF 是什么现在我们有了融合以太网 (CE)即通过以太网支持 RDMA。CE 就像一个增强的以太网版本也称为数据中心桥接和数据中心以太网。它封装了以太网上的 InfiniBand 传输数据包。其解决方案提供了链路级流量控制机制即使在网络饱和时也能确保零丢失。RoCE 协议允许比其前身 iWARP 协议更低的延迟。 更多介绍见博客的其他文章介绍 NVMe Initiator 和 target 配置 target端即磁盘阵列或其他装有磁盘的主机。通过iscsitarget工具将磁盘空间映射到网络上initiator端就可以寻找发现并使用该磁盘。 Initiator发起者 和 target 连接方式如下图所示左侧为initiator其右为target。 在NVMe协议中NVMe 控制器是与 initiator 进行沟通的实体。 通过确定 PCIe port 、NVMe controller 和NVMe namespaceinitiator 端可以通过 discover 和 connect 互联命令发现 target 端 NVMe namespace 并将其连接至本地。 引用至《深入浅出SSD》 NVMe over Fabrics 协议定义了使用各种事务层协议来实现 NVMe 功能其中包括 RDMA、FibreChannel等。 相比与普通的 NVMe 命令NVMe over Fabrics 扩展了 NVMe 标准命令和数据传输方式比如增加了互联命令discoverconnect、Property Get/Set、Authentication Send/Receive等。connect 命令携带 Host NQN、NVM Subsystem NQN 、PCIe port 和 Host identifier 信息可以连接到 target 端 NVMe 控制器。 本文中 NVMe over RoCE 调用关系如下图所示内核 nvme_rdma 模块相当于胶水层连接 rdma stack 和 nvme core接口即 NVMe 队列接口可以对接 RDMA 队列接口进而调用下层 rdma stack 中 verbs 传输接口。 NVMe over RoCE 调用关系 target 端配置 # NVMe target configuration # Assuming the following: # IP is 192.168.13.147/24 # link is up # using ib device eth2 # modprobe nvme and rdma modulemodprobe nvmet modprobe nvmet-rdma modprobe nvme-rdma# 1、config nvme subsystem mkdir /sys/kernel/config/nvmet/subsystems/nvme-subsystem-name cd /sys/kernel/config/nvmet/subsystems/nvme-subsystem-name# 2、allow any host to be connected to this target echo 1 attr_allow_any_host# 3、create a namesapceexample: nsid10 mkdir namespaces/10 cd namespaces/10# 4、set the path to the NVMe device echo -n /dev/nvme0n1 device_path echo 1 enable# 5、create the following dir with an NVMe port mkdir /sys/kernel/config/nvmet/ports/1 cd /sys/kernel/config/nvmet/ports/1# 6、set ip address to traddr echo 192.168.13.147 addr_traddr# 7、set rdma as a transport typeaddr_trsvcid is unique. echo rdma addr_trtype echo 4420 addr_trsvcid# 8、set ipv4 as the Address family echo ipv4 addr_adrfam# 9、create a soft link ln -s /sys/kernel/config/nvmet/subsystems/nvme-subsystem-name /sys/kernel/config/nvmet/ports/1/subsystems/nvme-subsystem-name# 10、Check dmesg to make sure that the NVMe target is listening on the port dmesg -T| grep enabling port [369910.403503] nvmet_rdma: enabling port 1 (192.168.13.147:4420) initiator 端配置 initiator 端又称为host/client端initiator 配置前提RDMA基础环境已搭建。通过NVMe 互联命令探测和连接target 端 NVMe SSD 即可。 # 探测 192.168.13.147 机器上 4420 端口 nvme ssd nvme discover -t rdma -q nvme-subsystem-name -a 192.168.13.147 -s 4420# 连接 192.168.13.147 4420 端口 nvme ssd nvme connect -t rdma -q nvme-subsystem-name -n nvme-subsystem-name -a 192.168.13.147 -s 4420# 与target 端 nvme ssd 断开连接 nvme disconnect -n nvme-subsystem-name 配置成功状态 配置前 initiator 和 target 各有 4块 NVMe SSD使用上述 initator 和 target 配置方法将 target 上 4 块 NVMe SSD 挂载至 initator配置后的现象是 initiator 会显示 8 块 NVMe SSDtarget 仍然是 4 块。经验证 target 不可以操作被挂载至 initiator 端的 NVMe SSD。配置状态如下图所示 配置前 配置后 性能测试 下面对比测试本地 NVMe SSD 和 NVMe over RoCE SSD之间的顺序/随机性能单盘ext4文件系统结论是通过性能数据表明NVMe over RoCE方法顺序读性能下降约 14%随机写和随机读性能分别下降约 6% 和 2%顺序写性能无影响。 I/O类型Local NVMe SSDNVMe over RoCE SSD顺序写 (MB/s)20352031顺序读 (MB/s)33742889随机写 (IOPS)51.6k48.4k随机读 (IOPS)571k557k 注NVMe 裸盘测试性能正常挂载文件系统后性能急剧下降后续会在文件系统层面研究如何调优。 测试方法将 NVMe SSD 全盘顺序写2遍后使用 fio 测试工具 # 顺序写 fio --iodepth128 --numjobs4 --size1TB --norandommap --readwritewrite --bs128k --filename/partition1/write.txt --runtime1200 --time_based --ioenginelibaio --direct1 --group_reporting --namewrite# 顺序读 fio --iodepth128 --numjobs4 --size1TB --norandommap --readwriteread --bs128k --filename/partition1/write.txt --runtime120 --time_based --ioenginelibaio --direct1 --group_reporting --nameread# 随机写 fio --iodepth128 --numjobs4 --size1TB --norandommap --readwriterandwrite --bs4k --runtime1200 --time_based --filename/partition1/randwrite.txt --ioenginelibaio --direct1 --group_reporting --namerand_write# 随机读 fio --iodepth128 --numjobs4 --size1TB --norandommap --readwriterandread --bs4k --runtime300 --time_based --filename/partition1/randwrite.txt --ioenginelibaio --direct1 --group_reporting --namerand_read target 中同 1 个子系统例如nvme-subsystem-name可供多个 initiator 连接。target 子系统关联的硬盘为 /dev/nvme0n1此时 initiator1 和 initiator2 同时连接 target nvme-subsystem-name挂载分区后的效果是 initiator1 和 initiator2 均可对 /dev/nvme0n1分区正常读写但不会同步仅有等待 disconnect 再次 connect 后才会进行数据同步。 遇到的问题 问题1nvmet 模块无法加载的问题 # 导入nvmet内核模块 modprobe nvmet dmesg | tail [87679.872351] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised: dm-develredhat.com [87776.766628] nvmet: Unknown symbol nvme_find_pdev_from_bdev (err -2) [87850.518208] nvmet: Unknown symbol nvme_find_pdev_from_bdev (err -2) [88090.703738] nvmet: Unknown symbol nvme_find_pdev_from_bdev (err -2) [88093.708573] nvmet: Unknown symbol nvme_find_pdev_from_bdev (err -2)# 解决方法删除 nvme 模块后重新加载 nvme 即可 rmmod nvme modprobe nvme nvmet 问题2在 initiation 端执行 nvme discover 命令时遇到 Failed to write to /dev/nvme-fabrics: Invalid argument报错 # 通过 dmesg 发现如下日志说明 hostnqn 参数没有指定。 [Sat Jan 9 23:00:19 2021] nvme_fabrics: unknown parameter or missing value hostnqn in ctrl creation request# 解决方法 nvme discover 添加 -q nvme-subsystem-name 参数 nvme-cli 用户文档 nvme 是 NVMe SSD和 NVMe oF 存储命令行管理工具nvme安装包为 nvme-cli它依赖Linux内核 IOCTL 系统调用该调用连接用户层和NVMe驱动层当用户执行 nvme commands 时IOCTL 会将命令参数传递至 NVMe common 层该层代码解析命令并执行命令将命令封装至 capsule 进而传递至 NVMe Submission 队列Controller 处理后将 capsule 传递至 NVMe Completion 队列应用从 Completion 队列取出 capsule完成一次通信。 nvme 安装和常用命令 # 安装nvme-cli apt-get install pkg-config uuid-runtime -y git clone https://github.com/linux-nvme/nvme-cli.git cd nvme-cli make make install# nvme 命令使用方式 usage: nvme command [device] [args] # 其中 device 要么是 NVMe 字符设备例如 /dev/nvme0要么是 NVMe 块设备例如 /dev/nvm0n1。# 查看所有nvme块设备 nvme list# 查看命名空间结构 nvme id-ns /dev/nvme1n1# 创建命名空间分为3个步骤create-ns、attach-ns 和 reset # create-ns 命令中 -s -c 参数分别对应nsze、ncap可以参考 nvme id-ns /dev/nvme1n1 输出结果 nvme create-ns -s 0xba4d4ab0 -c 0xba4d4ab0 -f 0 -d 0 -m 0 /dev/nvme0# 将命令空间1关联至控制器0 nvme attach-ns /dev/nvme0 -c 0 -n 1# 重置 /dev/nvme0使得创建的命名空间以块设备形式显示在OS中 nvme reset /dev/nvme0# 查看 /dev/nvme0 拥有的命名空间 nvme list-ns /dev/nvme0# 删除 /dev/nvme0 第1个命令空间 nvme delete-ns /dev/nvme0 -n 1# 查看 /dev/nvme0 拥有的控制器 nvme list-ctrl /dev/nvme0 查看 NVMe SSD smartctl 信息 # 使用 smartctl 命令查看 nvme 盘信息例如device_name 为 /dev/nvme0n1 apt-get install smartmontools -y smartctl -a -d nvme $device_name NVMe over RoCE应用场景 1、刀片仅有 2 个盘位可以通过 RoCE 连接 NVMe SSD 存储池。 当刀片存储容量不够用时可以使用 RoCE 连接 NVMe SSD存储池。 2、读写分离场景可以使用 NVMe over RDMA 搭建 NFS。 target 上 NVMe SSD 可以划分分区格式化文件系统写入数据。 target NVMe SSD以块设备形式挂载至 initiator后仅需 mount 操作即可使用。前提是仅有读操作各 initator 往同1块 NVMe SSD 上写数据时各 initator 并不会同步数据。 3、NVMe SSD创建多个命名空间通过 RoCE 供多个租户使用。 公有云/私有云场景如下图所示将 1 块大容量 NVMe SSD 划分为多个命名空间虚拟化后提供给多个租户可以充分发挥 NVMe SSD 的性能。 创建多个命名空间 参考文档 1、Kingston, Understanding SSD Technology: NVMe, SATA, M.2 2、nvme-command user guide 3、what is a namespace ? 4、NVMe over RoCE Storage Fabrics for noobs 5、HowTo Configure NVMe over Fabrics 6、深入浅出SSD
http://www.w-s-a.com/news/361785/

相关文章:

  • 网页制作网站素材项目建设全过程管理
  • 正能量网站下载柬埔寨网赌网站开发
  • 如何免费建设公司网站广州传业建设有限公司网站
  • 织梦做的网站快照被攻击张家口网站建设公司
  • 平顶山公司网站建设南昌网站seo多少钱
  • 网站开发要先买服务器吗建设婚恋网站用什么搭建
  • 我想自己在网站上发文章 怎样做wordpress站点安装
  • 北京模板网站开发全包昆明网站开发正规培训
  • 西咸新区建设环保网站谷歌风格wordpress
  • 嘉兴港区建设局网站2018年网站开发
  • 网站里图片做超链接专业开发网站报价单
  • server2003网站建设做销售记住这十句口诀
  • microsoft免费网站网站后台登陆路径
  • 贵州住房和城乡建设局网站做网站排名费用多少钱
  • 现在个人做网站还能盈利吗xampp用wordpress
  • 做网站 租服务器温岭建设公司网站
  • 四川住房和城乡建设厅网站官网做网站最贵
  • 右玉网站建设四川林峰脉建设工程有限公司网站
  • 网站推广小助手杭州百度百家号seo优化排名
  • 怎么做网站搜索框搜索网站备案拍照背景幕布
  • 建设部网站城市规划资质标准伊春网络推广
  • 如何设计酒店网站建设深圳市房地产信息系统平台
  • 伍佰亿网站怎么样网站建设前台后台设计
  • 做整装的网站北京哪个网站制作公司
  • 建设赚钱的网站福州便民生活网
  • 咸阳网站设计建设公司小程序打包成app
  • 做视频网站视频文件都存放在哪做旅游宣传图的网站有哪些
  • 地方门户类网站产品推广惠州市中国建设银行网站
  • 网站建设公司推荐5788移动版wordpress
  • 产品类型 速成网站淘宝怎么建立自己的网站