从总的功能上说,Nameserver(以下简称Ns)具体包括以下几个功能。由于Ns(不管是主还是备)需要知道自己的状态是否正常,于是Ns有一个自身的健康状态检查。另外,主Ns需要知道备Ns的状态,于是主备Ns之间有个定期Keepalive的过程,除此之外,主Ns中关于Block的变更,复制压缩等变化将以操作日志重放的方式同步到备Ns中的。Ns还需要接收Ds定期发起的心跳以及Block汇报消息,以便让Ns知道Ds状态是否正常,这样Ns才有可能管理各个Block与Server之间的关系。当新加入一台Ds时,Ns会根据Ds的使用比例向Ds发起一个数据迁移的操作请求;当有一台Ds退出时,Ns会发现有些Block的备份数量不够了,于是Ns会向Ds发起Block复制的操作请求。当某个Ds上的Block删除的比较多时,Ns会向Ds发起压缩Block的操作请求。最后,Ns还需要处理客户端以及Ds发过来的具体消息的请求处理。