diff --git a/HISTORY b/HISTORY index 33677f4..b03e0e2 100644 --- a/HISTORY +++ b/HISTORY @@ -1,7 +1,18 @@ -Version 5.13 2019-09-29 - * use socketCreateExAuto and socketClientExAuto exported by libfastcommon, - you must upgrade libfastcommon to V1.41 or later +Version 6.00 2019-10-16 + * tracker and storage server support dual IPs + 1. you can config dual trackr IPs in storage.conf and client.conf, + the configuration item name is "tracker_server" + 2. you can config dual storage IPs in storage_ids.conf + more detail please see the config files. + + NOTE: you MUST upgrade libfastcommon to V1.41 or later + the tracker and storage server must upgrade together + + * storage server get IP from tracker server + * storage server report current tracker IP to the tracker server when join + * tracker server check tracker list when storage server join + * use socketCreateExAuto and socketClientExAuto exported by libfastcommon Version 5.12 2018-06-07 * code refine for rare case diff --git a/conf/client.conf b/conf/client.conf index e791a96..a34e56e 100644 --- a/conf/client.conf +++ b/conf/client.conf @@ -9,8 +9,14 @@ network_timeout=60 # the base path to store log files base_path=/home/yuqing/fastdfs -# tracker_server can ocur more than once, and tracker_server format is -# "host:port", host can be hostname or ip address +# tracker_server can ocur more than once for multi tracker servers. +# the value format of tracker_server is "HOST:PORT", +# the HOST can be hostname or ip address, +# and the HOST can be dual IPs or hostnames seperated by comma, +# the dual IPS must be an intranet IP and an extranet IP. +# such as: 192.168.2.100,122.244.141.46 + +tracker_server=192.168.0.196:22122 tracker_server=192.168.0.197:22122 #standard log level as syslog, case insensitive, value list: diff --git a/conf/storage.conf b/conf/storage.conf index f0d80bf..a317733 100644 --- a/conf/storage.conf +++ b/conf/storage.conf @@ -114,9 +114,15 @@ store_path0=/home/yuqing/fastdfs # store_path (disk), value can be 1 to 256, default value is 256 subdir_count_per_path=256 -# tracker_server can ocur more than once, and tracker_server format is -# "host:port", host can be hostname or ip address +# tracker_server can ocur more than once for multi tracker servers. +# the value format of tracker_server is "HOST:PORT", +# the HOST can be hostname or ip address, +# and the HOST can be dual IPs or hostnames seperated by comma, +# the dual IPS must be an intranet IP and an extranet IP. +# such as: 192.168.2.100,122.244.141.46 + tracker_server=192.168.209.121:22122 +tracker_server=192.168.209.122:22122 #standard log level as syslog, case insensitive, value list: ### emerg for emergency diff --git a/conf/storage_ids.conf b/conf/storage_ids.conf index 7206056..b444377 100644 --- a/conf/storage_ids.conf +++ b/conf/storage_ids.conf @@ -1,3 +1,10 @@ -# +# +# storage ip or hostname can be dual IPs seperated by comma, +# one is an intranet IP and another is an extranet IP. +# for example: 192.168.2.100,122.244.141.46 +# +# the port is optional. if you run more than one storaged instances +# in a server, you must specified the port to distinguish different instances. + # 100001 group1 192.168.0.196 # 100002 group1 192.168.0.116 diff --git a/fastdfs.spec b/fastdfs.spec index 1445f0c..04268f2 100644 --- a/fastdfs.spec +++ b/fastdfs.spec @@ -3,7 +3,7 @@ %define FDFSClient libfdfsclient %define FDFSClientDevel libfdfsclient-devel %define FDFSTool fastdfs-tool -%define FDFSVersion 5.0.12 +%define FDFSVersion 6.0.0 %define CommitVersion %(echo $COMMIT_VERSION) Name: %{FastDFS} @@ -18,14 +18,14 @@ Source: http://perso.orange.fr/sebastien.godard/%{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: %__cp %__mv %__chmod %__grep %__mkdir %__install %__id -BuildRequires: libfastcommon-devel >= 1.0.36 +BuildRequires: libfastcommon-devel >= 1.0.41 %description This package provides tracker & storage of fastdfs commit version: %{CommitVersion} %package -n %{FDFSServer} -Requires: libfastcommon >= 1.0.36 +Requires: libfastcommon >= 1.0.41 Summary: fastdfs tracker & storage %package -n %{FDFSTool} diff --git a/storage/storage_ip_changed_dealer.c b/storage/storage_ip_changed_dealer.c index acd6a26..12c1d99 100644 --- a/storage/storage_ip_changed_dealer.c +++ b/storage/storage_ip_changed_dealer.c @@ -172,7 +172,6 @@ int storage_get_my_tracker_client_ip() close(conn->sock); return result; } - //pGlobalServer-> getSockIpaddr(conn->sock, tracker_client_ip, IP_ADDRESS_SIZE); insert_into_local_host_ip(tracker_client_ip); diff --git a/tracker/tracker_func.c b/tracker/tracker_func.c index c29aa27..1041e8b 100644 --- a/tracker/tracker_func.c +++ b/tracker/tracker_func.c @@ -741,7 +741,7 @@ int tracker_load_from_conf_file(const char *filename, \ "trunk_compress_binlog_min_interval=%d, " \ "use_storage_id=%d, " \ "id_type_in_filename=%s, " \ - "storage_id_count=%d, " \ + "storage_id/ip_count=%d / %d, " \ "rotate_error_log=%d, " \ "error_log_rotate_time=%02d:%02d, " \ "rotate_error_log_size=%"PRId64", " \ @@ -777,7 +777,8 @@ int tracker_load_from_conf_file(const char *filename, \ g_trunk_init_reload_from_binlog, \ g_trunk_compress_binlog_min_interval, \ g_use_storage_id, g_id_type_in_filename == \ - FDFS_ID_TYPE_SERVER_ID ? "id" : "ip", g_storage_ids_by_id.count, \ + FDFS_ID_TYPE_SERVER_ID ? "id" : "ip", \ + g_storage_ids_by_id.count, g_storage_ids_by_ip.count, \ g_rotate_error_log, g_error_log_rotate_time.hour, \ g_error_log_rotate_time.minute, \ g_log_context.rotate_size, g_log_file_keep_days,