GFS一次lookup消耗网络流量分析

本文详细介绍了数据链路层、IP协议层、TCP协议层、RPC协议以及GlusterFS协议的字节数占用情况,并通过具体示例计算了在不同场景下所需传输的数据量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.数据链路层所占字节数固定为 :14B(详细内容略)
2.ip协议层所占字节数固定为:   28B(详细内容略)
3.TCP协议层所占字节数固定为:  32B(详细内容略)
4.RPC协议格式分为两种:一种是call,另一种是replay
  call: 所占字节数固定为 100B,详细结构及所占字节数如下:
        Fragment header: 4B
        XID:             4B
        Message Type:    4B
        RPC Version:     4B
        Program:         4B
        Program Version: 4B
        Procedure:       4B
        Credentials:     64B
        Verifier:        8B
 
  repaly:所占字节数固定为 28B,详细结构及所占字节数如下:
        Fragment header: 4B
        XID:             4B
        Message Type:    4B
        Replay state:    4B
        Verifier:        8B
        accept state:    4B
 
5.GlusterFS协议格式和RPC的call和replay协议相对应,如果是call对应的GlusterFS协议所占字节数为:332B + 要lookup的目录的字节数(如果目录的字节数为单数则补1位),如果是replay对应的GlusterFS协议所占字节数为320B或212B;
  call对应GlusterFS详细结构如下:
        GFID:            16B
        Parent GFID:     16B
        Flags:           4B
        Basename:       (4+lookup的目录的字节数+目录的字节数为单数?1:0)B 
        目录扩展属性信息 292B
           
        目录扩展属性信息包括:glusterfs.parent-entrylk、glusterfs.entrylk-count、glusterfs.inodelk-count、gfidless-lookup、trusted.afr.gfs-ljl-client-2(与备份数有关)、trusted.afr.gfs-ljl-client-1、trusted.afr.gfs-ljl-client-0、glusterfs.content、[RPC-roundup bytes: 3]共8个。
       
  replay对应GlusterFS详细结构如下:
        Return value:   4B
        Errno:           4B
        Pre-operation parent IATT    100B
        Post-operation parent IATT   100B
        目录扩展属性:   112B (如果没有扩展属性返回为4B)
       
        目录扩展属性信息包括:glusterfs.inodelk-count、glusterfs.entrylk-count、glusterfs.entrylk-count、[RPC-roundup bytes: 1]
       
       
6.计算例子:
  6.1  如果lookup "xmail_dedup"目录时,glusterfs所在服务器对一个brickserver要传输的字节数(对应的RPC格式为call)。
       计算如下:"xmail_dedup" 字符串的字节数为11B,是单数需要补1,变为12B
       14 + 28 + 32 + 100 + 332 + 12 = 510B
  6.2  brickserver 返回给glusterfs所在服务器要传输的字节数(对应RPC格式为replay)
       14 + 28 + 32 + 28 + 320 = 414B
  6.3  如果一个集群有282个brickserver,则需要传输的总字节数为:
       510*282B = 143820B
  6.4  我们真实需要的数据传输的字节数
       假设需要传输的字节只有要扫描目录的路径("xmail_dedup"共11个字节):(66+11)*282 = 21714B
  6.5   GFS传输的过多的垃圾数据
        143820 - 21714 = 119K 
  6.6  如果lookup的目录深度为5层,则需要 119*5 = 595K的多余网络通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值