在Ubuntu20上安装FastDFS环境
应用中一般会有文件上传、下载相关业务。这里通过使用 FastDFS 构建一个简单的分布式文件系统满足一般的需求。实际项目中分布式文件系统的选择根据业务需求、团队技术栈具体选择。
安装环境依旧是利用 KVM 虚拟机完成。开发环境使用 FastDFS 的单机部署就可以。生成环境使用分布式部署提高性能及可靠性。
单机模式就是把 tracker 和 storage 都安装在同一台机器上,虽然 IP 相同但是可以通过使用不同 port 来在单机实习集群功能。
分布式部署就是在不同机器安装安装不同的 Tracker、Storage 节点。
1. 构建 Ubuntu20 虚拟机,用于安装 FastDFS。
虚拟机设置
如前几篇文章一样,在 virt-infra-ansible/inventory 目录下设置 FastDFS 服务器配置。因为这是用于原型验证,所以这里硬盘配置仅仅是 20G。给每个虚拟机设置 mac 是为了对 IP 进行绑定、DNS 设置。
因为安装 FastDFS 需要编译环境,所以通过 virt_infra_disk_cmd 让虚拟机预先执行必要安装:
apt -y install git gcc g++ make automake autoconf libtool pcre2-utils libpcre2-dev libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssh-dev wget vim
所以
fastDfsServers:
hosts:
dfsServer0:
ansible_python_interpreter: /usr/bin/python3
virt_infra_networks:
- name: br0
type: bridge
mac: "52:54:00:81:45:10"
dfsServer1:
ansible_python_interpreter: /usr/bin/python3
virt_infra_networks:
- name: br0
type: bridge
mac: "52:54:00:81:45:11"
dfsServer2:
ansible_python_interpreter: /usr/bin/python3
virt_infra_networks:
- name: br0
type: bridge
mac: "52:54:00:81:45:12"
vars:
virt_infra_state: running
virt_infra_distro: ubuntu
virt_infra_distro_image: focal-server-cloudimg-amd64.img
virt_infra_autostart: yes
ansible_python_interpreter: /usr/bin/python3
virt_infra_timezone: "Asia/Shanghai"
virt_infra_root_password: password
virt_infra_disk_size: 20
virt_infra_ram: 4094
virt_infra_ram_max: 8192
virt_infra_cpus: 4
virt_infra_cpus_max: 8
virt_infra_networks:
- name: br0
type: bridge
virt_infra_disk_cmd:
- apt update
- apt install -y net-tools
- apt -y install git gcc g++ make automake autoconf libtool pcre2-utils libpcre2-dev libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssh-dev wget vim
一键创建虚拟机
依旧是按照老套路创建虚拟机。登录 KVM HOST,执行:
cd virt-infra-ansible
ansible-playbook ./virt-infra.yml --limit kvmhost,fastDfsServers
设置 DHCP 服务绑定 mac 和 IP,设置 DNS 服务绑定 IP 和域名
因为这里是直接利用无线路由提供的 DHCP 服务,为了绑定 MAC、IP 直接登录无线网关通过 Web 页面进行。
如上篇所述,我们的环境中已经安装了 CoreDNS 服务,所以我们可以为 fastDFS 服务器们设置域名。
因为 virt-infra-ansible 工具会在成功创建虚拟机后把 IP 写入 hosts 文件,所以可通过 KVM HOST 上的 hosts 文件查看刚刚创建出虚拟机的 IP。
登录 repositoryServer,
cd /home/devops/dockerSrvStorage/coredns
vi hostsfile
添加 IP 到机器名/域名的映射。
192.168.0.116 dfsServer0 dfsTracker
192.168.0.104 dfsServer1 dfsStorage0
192.168.0.117 dfsServer2 dfsStorage1
2. 安装 FastDFS
参照官方安装指南 https://github.com/happyfish100/fastdfs/wiki 很容易安装。
创建文件夹 /home/fastdfs 用于保存 fastdfs 管理的文件和日志。
利用目录 /usr/local/src 保存需要编译的源码。
这里 checkout v6.07 版本的 fastDFS 进行安装,其它步骤与官方文档基本一直。
cd /usr/local/src
git clone https://github.com/happyfish100/fastdfs.git --depth 1
cd fastdfs/
git fetch --all --tags
git checkout tags/V6.07 -b V6.07
git pull
./make.sh && ./make.sh install
3. 启动 FastDFS
启动 tracke、storage 服务:
/etc/init.d/fdfs_trackerd start
/etc/init.d/fdfs_storaged start
查看 fastDFS 服务状态:
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
设置开机自启动
vi /lib/systemd/system/rc-local.service 并添加如下内容:
[Install]
WantedBy=multi-user.target
Alias=rc-local.servic
创建/etc/rc.local,并添加如下内容:
touch /etc/rc.local
chmod +x /etc/rc.local
#!/bin/sh
/etc/init.d/fdfs_trackerd start
/etc/init.d/fdfs_storaged start
4. 测试 fastDFS
修改 /etc/fdfs/client.conf 中如下配置:
base_path=/home/fastdfs
tracker_server=dfsServer0
测试上传
fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/nginx-1.15.4.tar.gz
Reference:
官网:https://github.com/happyfish100/fastdfs/
一般性介绍:https://www.jianshu.com/p/1c71ae024e5e
FastDFS 在 Ubuntu 的安装配置: https://zhuanlan.zhihu.com/p/29133587