lustre lnet

lustre  lnet

http://translate.sogoucdn.com/fulltranslation?url=http%3A%2F%2Fwiki.lustre.org%2FLNet_Router_Config_Guide&query=lustre\x20\x20lnet&tfr=wap&domainType=sogou&mcv=26&pcl=52,524&sed=0&ml=20&sct=61

 

LNet支持不同的网络类型,如以太网、InfiniBand、Intel Omni - Path和其他专有网络技术,如Cray Gemini。它使用LNet路由在不同的LNet网络之间路由LNet消息。LNet的路由能力提供了一种有效的协议,能够在不同类型的网络之间进行桥接。LNet是Linux内核空间的一部分,当底层网络支持时,它允许完整的RDMA吞吐量和零拷贝通信。lustre可以使用单个远程过程调用( RPC )启动多主机读取或写入,这允许客户端以接近峰值带宽速率使用RDMA访问数据。借助Lustre 2 . 10 . x中实现的多轨( MR )功能,它允许在同一LNet下将节点上相同类型的多个接口分组在一起(例如TCP 0、O2 B0等)。) .然后,这些接口可以同时用于承载LNet流量。MR还能够利用在不同网络上配置的多个接口。例如,OPA和MLX接口可以被分组到它们各自的LNet下,然后可以与MR特征一起使用,以同时承载LNet业务。

 

网络配置示例

LNet路由器是一个专门的Lustre客户端,Lustre文件系统没有装载,只有LNet在运行。单个LNet路由器可以服务于不同的文件系统。

对于以上示例:

  • 服务器位于基于Mellanox的InfiniBand网络LAN1上–10 . 10 . 0 . 0 / 24
  • 客户是英特尔OPA网络LAN2–10 . 20 . 0 . 0 / 24
  • LAN 1和LAN 2上的路由器分别位于10 . 10 . 0 . 20、10 . 10 . 0 . 21和10 . 20 . 0 . 29、10 . 20 . 0 . 30

节点上的网络配置可以通过在lustre . conf中添加模块参数来完成/ etc / modprobe . d /光泽. conf或者通过使用命令实用程序。此外,当前配置可以导出到YAML格式文件,然后可以根据需要随时导入该YAML文件来设置配置。

 

通过在lustre . conf中添加模块参数进行网络配置

Servers:

options lnet networks="o2ib1(ib0)" routes="o2ib2 10.10.0.20@o2ib1"

 

Routers:

options lnet networks="o2ib1(ib0),o2ib2(ib1)" "forwarding=enabled"

 

Clients:

options lnet networks="o2ib2(ib0)" routes="o2ib1 10.20.0.29@o2ib2"

注意:重新启动LNet是应用新配置所必需的。为此,需要取消配置LNet网络并重新配置。卸载模块前,确保Lustre网络和Lustre文件系统已停止。

// To unload and load LNet module

modprobe -r lnet

modprobe lnet

  

// To unconfigure and reconfigure LNet

lnetctl lnet unconfigure

lnetctl lnet configure

 

动态网络配置使用命令

Servers:

lnetctl net add --net o2ib1 --if ib0

lnetctl route add --net o2ib2 --gateway 10.10.0.20@o2ib1

lnetctl peer add --nid 10.10.0.20@o2ib1

 

Routers:

lnetctl net add --net o2ib1 --if ib0

lnetctl net add --net o2ib2 --if ib1

lnetctl peer add --nid 10.10.0.1@o2ib1

lnetctl peer add --nid 10.20.0.1@o2ib2

lnetctl set routing 1

   

Clients:

lnetctl net add --net o2ib2 --if ib0

lnetctl route add --net o2ib1 --gateway 10.20.0.29@o2ib2

lnetctl peer add --nid 10.20.0.29@o2ib2

 

使用YAML文件格式导入/导出配置

// To export the current configuration to a YAML file

lnetctl export FILE.yaml

lnetctl export > FILE.yaml

  

  

// To import the configuration from a YAML file

lnetctl import FILE.yaml

lnetctl import < FILE.yaml


有一个缺省文件安装在/ etc / net . conf其具有YAML格式的示例配置。YAML文件中配置的另一个示例是:

net:

    - net type: o2ib1

      local NI(s):

        - nid: 10.10.0.1@o2ib1

          status: up

          interfaces:

              0: ib0

          tunables:

              peer_timeout: 180

              peer_credits: 8

              peer_buffer_credits: 0

              credits: 256

          lnd tunables:

              peercredits_hiw: 64

              map_on_demand: 32

              concurrent_sends: 256

              fmr_pool_size: 2048

              fmr_flush_trigger: 512

              fmr_cache: 1

          tcp bonding: 0

          dev cpt: -1

          CPT: "[0]"

route:

    - net: o2ib2

      gateway: 10.10.0.20@o2ib1

      hop: 1

      priority: 0

      state: up

peer:

    - primary nid: 10.10.0.20@o2ib1

      Multi-Rail: False

      peer ni:

        - nid: 10.10.0.20@o2ib1

          state: up

          max_ni_tx_credits: 8

          available_tx_credits: 8

          min_tx_credits: 7

          tx_q_num_of_buf: 0

          available_rtr_credits: 8

          min_rtr_credits: 8

          refcount: 4

global:

    numa_range: 0

    max_intf: 200

    discovery: 1


LNet提供了一种机制来监控每个路由条目。lnt以定期的、可配置的间隔( live _ router _ check _ interval )对路由条目中标识的每个网关进行查验,以确保其处于活动状态。如果通过特定路由发送失败,或者路由器Pinger确定网关关闭,则该路由被标记为关闭,不被使用。它随后以规则的、可配置的间隔( dead _ router _ check _ interval )被ping,以确定它何时重新激活。

 

多轨网配置实例

如果路由器启用了MR,我们可以将路由器作为具有多个接口的对等体添加到客户端和服务器,MR算法将确保在向路由器发送流量时使用路由器的两个接口。但是,单个接口故障仍将导致整个路由器停机。通过上面图1中的网络拓扑示例,可以如下配置LNet MR :

Servers:

lnetctl net add --net o2ib1 --if ib0,ib1

lnetctl route add --net o2ib2 --gateway 10.10.0.20@o2ib1

lnetctl peer add --nid 10.10.0.20@o2ib1,10.10.0.21@o2ib1

 

Routers:

lnetctl net add --net o2ib1 --if ib0,ib1

lnetctl net add --net o2ib2 --if ib2,ib3

lnetctl peer add --nid 10.10.0.1@o2ib1,10.10.0.2@o2ib1

lnetctl peer add --nid 10.20.0.1@o2ib2,10.20.0.2@o2ib2

lnetctl set routing 1

   

Clients:

lnetctl net add --net o2ib2 --if ib0,ib1

lnetctl route add --net o2ib1 --gateway 10.20.0.29@o2ib2

lnetctl peer add --nid 10.20.0.29@o2ib2,10.20.0.30@o2ib2

 

细粒度路由

路由参数通过识别Lustre配置中的LNet路由器,用于告诉节点在转发流量时使用哪条路由。它指定路由器定义的分号分隔列表。

routes=dest_lnet [hop] [priority] router_NID@src_lnet; \ dest_lnet [hop] [priority] router_NID@src_lnet

另一种语法由冒号分隔的路由器定义列表组成:

routes=dest_lnet: [hop] [priority] router_NID@src_lnet \ [hop] [priority] router_NID@src_lnet

当有两台或两台以上的LNet路由器时,可以使用优先级参数给每台路由器赋予加权优先级。以下是使用此参数的一些可能原因:

  • 其中一台路由器比另一台更有能力。
  • 一台路由器是主路由器,另一台是备份路由器。
  • 一台路由器用于一部分客户端,另一台路由器用于另一部分。

每台路由器都将流量移动到不同的物理位置。优先级参数是可选的,如果不存在优先级,则无需指定。hop参数指定到目的地的跳数。当节点转发流量时,使用跳数最少的路由。如果到同一目的网络的多个路由具有相同的跳数,则流量在这些路由之间以循环方式分布。要到达/传输到LNet dest _ LNet,给定节点的下一跳是LNet路由器,其NID路由器_ NID位于LNet src _ LNet中。给定一个结构足够完善的系统,可以将流程映射到每个客户端或服务器,也可以映射来自每个客户端或服务器的流程。这种路由也称为细粒度路由。

 

高级路由参数

在Lustre配置中,不同类型的LNet网络通过路由器连接,可以设置多个核心模块参数来监控和提高路由性能。这些参数在中设置/ etc / modprobe . d /光泽. conf文件。路由相关参数为:

  • 自动停机-启用/禁用( 1 / 0 )路由器状态的自动标记为up或down。默认值为1。要禁用路由器标记,请设置:

options lnet auto_down=0

  • 避免路由器故障-指定如果路由器的一个接口由于某种原因出现故障,整个路由器都会被标记为故障。这一点很重要,因为如果节点没有意识到一侧的接口出现故障,他们仍会继续将数据推送到另一侧,假设路由器运行正常,而实际情况并非如此。要打开它:

options lnet avoid_asym_router_failure=1

  • 实时路由器检查间隔-指定路由器检查器ping实时路由器的时间间隔(以秒为单位)。默认值为60。要将该值设置为50,请使用:

options lnet live_router_check_interval=50

  • 死路由器检查间隔-指定路由器检查器检查死机的时间间隔(以秒为单位)。默认值为60。要将该值设置为50 :

options lnet dead_router_check_interval=50

  • 路由器_ ping _超时-指定路由器检查器检查活动路由器或死机时的超时时间。路由器检查器每隔一个dead _ router _ check _ interval或live _ router _ check _ interval分别向每个dead或live路由器发送一次ping消息。默认值为50。要将该值设置为60 :

options lnet router_ping_timeout=60

  • 使用前检查路由器-指定路由器在使用前要检查。默认设置为关闭。如果此参数设置为on,则dead _ router _ check _ interval参数必须为正整数。

options lnet check_routers_before_use=1


路由器检验器从每台路由器获取以下信息:

  • 路由器被禁用的时间
  • 经过禁用时间

如果router _ checker在router _ ping _超时秒内没有收到来自路由器的回复消息,则认为路由器已关闭。如果标记为“up”的路由器响应ping,超时将被重置。如果通过路由器成功发送了100个数据包,则该路由器的发送数据包计数器的值将为100。LNet路由器的统计数据可从以下位置找到/ proc /系统/网络/统计。如果未指定间隔,则仅采样并打印一次统计信息。否则,将按指定间隔(秒)对统计信息进行采样和打印。这些统计信息可以使用显示实用程序以及如下所示:

# lnetctl stats show

statistics:

    msgs_alloc: 0

    msgs_max: 2

    errors: 0

    send_count: 887

    recv_count: 887

    route_count: 0

    drop_count: 0

    send_length: 656

    recv_length: 70048

    route_length: 0

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值