Interesting things
好像今天没有什么有趣的事情
What did you do today
-
创建虚拟机的时候,有时会抛出很多错误,解决方案:添加分配给虚拟机的内存。
- 解决XShell-ssh连接虚拟机经常被意外中断的问题,vi /etc/ssh/sshd_config,进入去掉注释#UseDNS no,改为UseDNS no,问题是ssh的服务端在连接虚拟机时会自动检测dns环境是否一致导致的,修改为不检测即可解决。
-
什么是FastDFS?通过作者的话来说FastDFS是一个开源的高性能分布式文件系统。它的主要功能包括文件村存储,文件同步和文件访问,以及高容量和负债均衡的设计。
- 输入
https://sourceforge.net/projects/fastdfs/files/
- 下载FastDFS的Server安装包,点击FastDFS Server Source Code
- 选择2014-12-02的版本进行点击,下载FastDFS_v5.05.tar.gz
,同理下载fastdfs-nginx-module_v1.16.tar和fastdfs_client_java._v1.25.tar
-
安装8台虚拟机(最小化安装),给这8台虚拟机配置静态ip并且能ping通外网和主机(可以参考我上一篇博客),配置完后使用XShell工具来操作虚拟机。
-
我使用的虚拟机分别为192.168.12.11 192.168.12.22 192.168.12.33 192.168.12.44 192.168.12.55 192.168.12.66 192.168.12.77 192.168.12.88。其中192.168.12.11和192.168.12.22分别作为tracker1和tracker2。192.168.12.33 和192.168.12.44作为group1。 192.168.12.55 和 192.168.12.66作为group2。最后把192.168.12.77和192.168.12.88作为Nginx集群多层负载均衡。多层负载均衡会生成一个虚拟ip,我们最终会通过虚拟ip来访问我们的集群。
-
我们用Xftp 5连接192.168.12.11,在/usr/local/ 创建software文件夹,然后在software下准备好这些文件。
-
然后通过scp -r/user/local/software/ root@192.168.12.22:/usr/local这样的方式给每一个虚拟机复制一份到它的/usr/local/software路径下(如果目标虚拟机路径下没有software文件夹,则会自动创建software文件夹)
- 给每一个虚拟机安装gcc, yum install make cmake gcc gcc++
-
如果虚拟机没有zip和unzip命令的话,会提示这样。
-
安装zip和unzip命令 yum install zip unzip
-
解压libfastcommon-master.zip, unzip libfastcommon-master.zip -d /usr/local/fast/
- 安装vim, yum install vim-enhanced,不然./make.sh编译会报错。
- 进入/usr/local/fast/libfastcommon-master,使用./make.sh进行编译。
-
执行./make.sh install
- 我们可以看到libfastcommon.so被安装进入/usr/lib64,而/usr/lib64里面东西巨他妈多,所以我们必须创建一个属于libfastcommon.so的软链接,方便我们查找libfastcommon.so。命令是:
ln -s /usr/lib64/libfastcommon.so /usr/local/lib64/libfastcommon.so以此类推,我也要创建libfdfslclient.so 的软链接。命令是:
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib64/libfdfsclient.so、
ln -s /usr/local/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
- 我们查看/usr/local 和 /usr/local/lib64发现libfdfsclient.so颜色是红色,因为/usr/lib64还没有libfdfsclient.so文件。
- 解析FastDFS.tar.gz。
tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local/fast/
- 然后执行./make.sh和./make.sh install
- 我们可以看到FastDFS服务器脚本安装在了/usr/bin下面,但是FastDFS服务脚本设置的目录为/usr/local/bin下,所以我们要修改/etc/init.d/fdfs_storaged和/usr/init.d/fdfs_trackerd这配置文件。将其中的/usr/local/bin设置为/usr/bin。
-
进入/etc/init.d/fdfs_storaged进行替换。命令:%s+/usr/local/bin+/usr/bin
- 进入/etc/init.d/fdfs_trackerd进行替换。命令:%s+/usr/local/bin+/usr/bin
-
公共部分的配置做完了,接下来搞tracker1(192.168.12.11)和tracker2(192.168.12.22)。
- 进入/etc/fdfs下面,拷贝tracker.conf.sample一份,并且重命名为tracker.conf
- 进入/etc/init.d/fdfs_trackerd进行替换。命令:%s+/usr/local/bin+/usr/bin
-
编辑tracker.conf,将base_path修改为/fastdfs/tracker
- 设置store_look的属性(选择群组上传文件的方法)。 0是轮询, 1是指定group,3是负载均衡,选择最大可用空间组去上传文件。为了方便后面的测试,我先将store_look设置为0,只有store_look=1时,store_group=group2才会生效。
- 将tracker.conf拷贝给tracker2。
scp tracker.conf root@192.168.12.22:/etc/fdfs
- 由于我们在tracker.conf设置的base_url=/fastdfs/tracker,所以我们要创建/fastdfs/tracker, mkdir -p /fastdfs/tracker, -p 代表递归创建目录。
- 配置防火墙,添加端口22122。你可能会纳闷了,为什么端口是22122?请看tracker.conf中默认的prot就是22122。
- 配置防火墙,vim /etc/sysconfig/iptables,但是我们在/etc/sysconfig/下面没有看到iptables
- 输入
FastDFS is an open source high performance distributed file system (DFS). It's major functions include: file storing, file syncing and file accessing, and design for high capacity and load balance.
What to do tomorrow
- 继续配置FastDFS的负载均衡和集群。大概3-4篇博客讲解完。
Summary
FastDFS真尼玛复杂。