特别说明:一切的前提是参考 https://www.cnblogs.com/eos666/p/9830630.html 先把环境搭建起来再说。
1.相同服务器本地数据迁移
1.1 本地服务器数据迁移
server5 192.168.1.245 数据目录:/fastdfs/fdfs_storage
server5 192.168.1.245 数据目录:/data
需求:
将FastDFS 系统下存储的数据迁移至本ip下的另外一个盘,不是不同ip间的数据迁移。
以下例子是将/fastdfs/fdfs_storage上的数据迁移至/data下。
注:
a) 迁移完后,原来的/fastdfs/fdfs_storage目录就做废了。
b) fdht去重数据和fdfs_trackerd都是存储到这个点的数据。
1.2 停止服务
killall nginx
killall fdfs_trackerd
killall fdfs_storaged
killall fdhtd
1.3 拷贝文件,迁移数据
cp -r /fastdfs/fdfs_storage /data
1.4 修改配置文件路径
vim /etc/fdfs/storage.conf
store_path0=/data/fdfs_storage/fdfs_storage_0
base_path=/data/fdfs_storage
vim /etc/fdfs/mod_fastdfs.conf
store_path0=/data/fdfs_storage/fdfs_storage_0
base_path=/data/fdfs_storage
vim /etc/fdfs/client.conf
base_path=/data/fdfs_client
1.5 修改Nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
location /group1/M00/ { root /data/fdfs_storage/fdfs_storage_0; #指向新的目录 ngx_fastdfs_module; }
1.6 重启服务
#启动服务
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/local/bin/fdhtd /etc/fdht/fdhtd.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
/usr/local/nginx/sbin/nginx
至此,本次数据迁移完毕。
2.不同服务器数据迁移
2.1 本地服务器数据迁移
server5 192.168.1.245 数据目录:/fastdfs/fdfs_storage
server4 192.168.1.244 数据目录:/fastdfs/fdfs_storage
需求:
将server5服务器下存储的数据迁移至server4服务器,不同ip间的数据迁移。
其实,就是扩容1个storage节点。
2.2 在新的机器server4上安装FastDFS
安装步骤,具体可参照《01-FastDFS+FastDHT 单节点安装》。
2.3 将新的storage接到老的tracker机器上,用来同步数据
vim /etc/fdfs/storage.conf # 其实直接从server5把配置文件拷贝过来就行
tracker_server=192.168.1.245:22122 # 此IP一定是要指向server5
2.4 拷贝FastDHT配置文件过来
scp -r /etc/fdht root@192.168.1.244:/etc/
cat /etc/fdfs/storage.conf # 其实直接从server5把配置文件拷贝过来就行
#此处特别需要注意配置,## 开头才是注释
#include /etc/fdht/fdht_servers.conf
2.5 启动storage服务
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
2.6 数据同步
数据量不大的话,很快就同步过来了。
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf |grep sync #查看同步结果
# server5 数据目录/fastdfs/fdfs_storage 的数据就同步到 server4 上面了。
ls /fastdfs/fdfs_storage #在servrer4服务器上面查看
3.迁移后的数据需要独立运行
server4 同步完server5 的storage 数据后,想在server4 上面重新搭建一套FastDFS+FastDHT服务使用。
3.1 在新的机器server4上安装FastDFS+FastDHT
参照《01-FastDFS+FastDHT 单节点安装》,进行安装;
注!!!:
所有启动服务项都先跳过,等配置修改完后再顺序启动各服务。
[ nginx、fdfs_trackerd、fdfs_storaged、fdhtd ] 均不启动。
3.2 拷贝FastDHT的去重数据
从server5上面把/usr/local/db-18.1.25目录拷贝到server4上面。
scp -r /usr/local/db-18.1.25 root@192.168.1.244:/usr/local/
3.3 修改各服务的配置文件
(1)配置/etc/fdfs/storage.conf文件
vim storage.conf
group_name=group1 base_path=/fastdfs/fdfs_storage store_path_count=1 store_path0=/fastdfs/fdfs_storage/fdfs_storage_0 tracker_server=192.168.1.244:22122 # 一定要配置自己的IP地址 port=23000 http.server_port=8888 check_file_duplicate=1 key_namespace=FastDFS keep_alive=1 #include /etc/fdht/fdht_servers.conf
(2)配置/etc/fdfs/tracker.conf文件
vim tracker.conf
base_path=/fastdfs/fdfs_tracker/ port=22122 #侦听端口 http.server_port=80 #配置http端口
(3) 配置fdhtd服务相关文件
a) 配置/etc/fdht/fdht_client.conf文件
vim /etc/fdht/fdht_client.conf
base_path=/fastdfs/fastdht keep_alive=1 #include /etc/fdht/fdht_servers.conf
b) 配置/etc/fdht/fdht_servers.conf 文件
vim /etc/fdht/fdht_servers.conf
group_count = 1 group0 = 192.168.1.244:11411 # 一定要配置自己的IP地址
c) 配置/etc/fdht/fdhtd.conf文件
vim /etc/fdht/fdhtd.conf
port=11411 bash_path= /fastdfs/fastdht #include /etc/fdht/fdht_servers.conf
(4) 配置Nginx服务相关文件
a) 配置/etc/fdfs/mod_fastdfs.conf文件
vim /etc/fdfs/mod_fastdfs.conf
base_path=/fastdfs/fdfs_nginx tracker_server=192.168.1.244:22122 # 一定要配置自己的IP地址 url_have_group_name=true store_path_count=1 store_path0=/fastdfs/fdfs_storage/fdfs_storage_0
b) 配置/usr/local/nginx/conf/nginx.conf
vim /usr/local/nginx/conf/nginx.conf
##----------------------------------------- user nobody; worker_processes 2; pid /var/run/nginx/nginx.pid; worker_rlimit_nofile 65535; events { worker_connections 65535; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for'; access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log error; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 8m; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; server { listen 80; server_name 192.168.1.244; # 一定要配置自己的IP地址 location / { root html; index index.html index.htm; } location /group1/M00/ { root /fastdfs/fdfs_storage/fdfs_storage_0; ngx_fastdfs_module; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } ##-----------------------------------------
3.4 删除部分索引相关数据,使其重新生成
rm -rf /fastdfs/fdfs_storage/data/sync/192.168.1.245_23000.mark
rm -rf /fastdfs/fdfs_storage/data/.data_init_flag
3.5 启动各服务
#start fastdfs
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/local/bin/fdhtd /etc/fdht/fdhtd.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
/usr/local/nginx/sbin/nginx
# 查看状态
fdfs_monitor /etc/fdfs/client.conf
至此,server4服务器也是一台提供FastDFS+FastDHT服务的单节点服务器了。
3.6 server5删除server4这个storage节点
因为server4之前是扩展节点,已经加入进来了,但现在server4独立运行了,需要把server4剔除掉。
注:在server5上面操作
删除STORAGE SERVER
fdfs_monitor /etc/fdfs/client.conf delete group1 192.168.1.244 #删除server4
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop
删除或修改以下文件:
rm -rf /fastdfs/fdfs_tracker/data/storage_changelog.dat
vim /fastdfs/fdfs_tracker/data/storage_servers_new.dat
#删除server4相关的记录,并把storage_count=2 修改为:
storage_count=1
> /fastdfs/fdfs_tracker/data/storage_sync_timestamp.dat
#清除该文件所有记录
重启服务:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
fdfs_monitor /etc/fdfs/client.conf |more
# 检查STORAGE SERVER,又恢复到一个storage节点了。
fdfs_monitor /etc/fdfs/client.conf