当storage启动时,会将以前存在文件中的IP(文件.data_init_flag, 不是第一次启动)和现在的IP 比较,如果IP改变了,就会将IP 变化的情况告诉Tracker(TRACKER_PROTO_CMD_STORAGE_REPORT_IP_CHANGED); Tracker将更新原来的storage的IP地址, 但原来的IP继续保留在server列表中(内部的字段改为默认值); 状态改为FDFS_STORAGE_STATUS_IP_CHANGED;并将更新情况记录到storage_changelog.dat中。
下载文件时主要是看group name; 如果IP更改了, 用指定源IP server下载时, 如果找不到,还是会用round robin 的方式选择storage server;
Tracker 每次都会将当前的storage server 信息保存在storage_servers_new.dat中,每次启动是先load storage_servers_new.dat中的老的信息(tracker_load_storages_old), 后续如果storage的信息如果有变化就会更改server列表的信息(如IP 更改等);