linux怎么查看本机内存大小
256
2022-10-12
MFS分布式文件系统
[ mfs工作原理 ]
分布式原理 分布式文件系统就是把一些分散在多台计算机上的共享文件夹,集合到一个共享文件夹内,用户要访问这些文件夹的时候,只要打开一个文件夹,就可以的看到所有链接到此文件夹内的共享文件夹。
.
MFS原理
MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。
1)MFS的组成
元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据,目前不支持高可用。 元数据日志服务器(MetaLogger):备份Master服务器的变化日志文件,当master服务器损坏,可以从日志服务器中取得文件恢复。 数据存储服务器(Chunk Server):真正存储数据的服务器,服务器越多,容量就越大,可靠性越高,性能越好。 客户端(Client): 可以像挂载NFS一样 挂载MFS文件系统
2)MFS读数据的处理过程
客户端向元数据服务器发出读请求 元数据服务器把所需数据存放的位置(Chunk Server的IP地址和Chunk编号)告知客户端 客户端向已知的Chunk Server请求发送数据 Chunk Server向客户端发送数据 .
3)写入的过程
客户端向元数据服务器发送写入请求 元数据服务器与Chunk Server进行交互,但元数据服务器只在某些服务器创建新的分块Chunks,创建成功后由hunk Servers告知元数据服务器操作成功 元数据服务器告知客户端,可以在哪个Chunk Server的哪些Chunks写入数据 客户端向指定的Chunk Server写入数据 该Chunk Server与其他Chunk Server进行数据同步,同步成功后Chunk Server告知客户端数据写入成功 客户端告知元数据服务器本次写入完毕
实验环境:
1 为master 192.168.136.1862 作为日志服务器 192.168.136.1673 4 作为存储端 192.168.136.251192.168.136.1855 作为客户端 192.168.136.253
1配置master服务器
#安装环境包 yum install -y zlib-devel gcc gcc-c++ [root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0 [root@localhost ~]# mkdir /abc [root@localhost ~]# mount.cifs //192.168.100.25/mfs /abc/ Password for root@//192.168.100.25/mfs: [root@localhost abc]# cd mfs/ [root@localhost mfs]# ls fuse-2.9.2.tar.gz mfs-1.6.27-5.tar.gz [root@localhost mfs]# tar zxvf mfs-1.6.27-5.tar.gz -C /opt cd /opt/mfs-1.6.27/ [root@localhost mfs-1.6.27]# useradd -s /sbin/nologin mfs #指定mfs安装路径 #指定默认用户和组 #禁用chunkserver,存储端才用到 #clinet终端才会用到mount ./configure \ --prefix=/usr/local/mfs \ --with-default-user=mfs \ --with-default-group=mfs \ --disable-mfschunkserver \ --disable-mfsmount [root@localhost mfs-1.6.27]# make && make install [root@localhost mfs-1.6.27]# cd /usr/local/mfs/etc/mfs/ #默认生成四个配置文件模板,还有一个拓扑结构的文件可开可不开 [root@localhost mfs]# ls mfsexports.cfg.dist mfsmetalogger.cfg.dist mfsmaster.cfg.dist mfstopology.cfg.dist cp mfsmaster.cfg.dist mfsmaster.cfg #master配置文件拷贝出来 cp mfsexports.cfg.dist mfsexports.cfg #挂载权限放开,客户端要进行挂载 cp mfsmetalogger.cfg.dist mfsmetalogger.cfg #自己的日志文件放开 [root@localhost mfs]# cd /usr/local/mfs/var/mfs/ #master运行中自动会产生一个源数据文件,运行时会写数据进去 cp metadata.mfs.empty metadata.mfs #工作目录权限放开 [root@localhost mfs]# chown -R mfs.mfs /usr/local/mfs/ #开启mfs [root@localhost mfs]# /usr/local/mfs/sbin/mfsmaster start #查看mfs进程有没有开启 [root@localhost mfs]# ps -ef | grep mfs mfs 18034 1 0 14:30 ? 00:00:00 /usr/local/mfs/sbin/mfsmaster start root 19619 2807 0 14:31 pts/1 00:00:00 grep --color=auto mfs
2搭建日志服务器
默认为24小时,即每小时隔一天从元数据服务MASTER下载一个metadata.mfs 当元数据服务器关闭或者出故障时,matedata.mfs.back 文件将消失, 那么要恢复整个mfs,则需从metalogger服务器取得该文件。 请特别注意这个文件,它与日志文件一起 才能够恢复整个损坏的分布式文件系统 #安装环境包 yum install -y zlib-devel gcc gcc-c++ [root@localhost ~]# mkdir /abc [root@localhost ~]# mount.cifs //192.168.100.25/mfs /abc/ Password for root@//192.168.100.25/mfs: [root@localhost ~]# cd /abc/ [root@localhost abc]# ls mfs [root@localhost abc]# cd mfs/ [root@localhost mfs]# tar zxvf mfs-1.6.27-5.tar.gz -C /opt/ [root@localhost mfs]# cd /opt/mfs-1.6.27/ #创建用户不让它登录主控制台 [root@localhost mfs-1.6.27]# useradd -s /sbin/nologin mfs ./configure \ --prefix=/usr/local/mfs \ --with-default-user=mfs \ --with-default-group=mfs \ --disable-mfschunkserver \ --disable-mfsmount make && make install #默认生成四个配置文件,我们只需要日志配置文件 [root@localhost mfs-1.6.27]# cd /usr/local/mfs/etc/mfs/ [root@localhost mfs]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg [root@localhost mfs]# vim mfsmetalogger.cfg 15 MASTER_HOST = 192.168.136.186 #指向主服务器的地址 [root@localhost mfs]# /usr/local/mfs/sbin/mfsmetalogger start #开启日志服务器 working directory: /usr/local/mfs/var/mfs lockfile created and locked initializing mfsmetalogger modules ... mfsmetalogger daemon initialized properly [root@localhost mfs]# ps -ef | grep mfs #查看日志服务器进程是否起来了 mfs 100628 1 0 15:00 ? 00:00:00 /usr/local/mfs/sbin/mfsmetalogger start root 100939 51459 0 15:00 pts/1 00:00:00 grep --color=auto mfs
配置3和4两台存储服务器
yum install -y zlib-devel gcc gcc-c++ useradd -s /sbin/nologin mfs [root@localhost ~]# mkdir /abc [root@localhost ~]# mount.cifs //192.168.100.25/mfs /abc/ Password for root@//192.168.100.25/mfs: [root@localhost ~]# cd /abc/ [root@localhost abc]# ls mfs [root@localhost abc]# cd mfs/ [root@localhost mfs]# tar zxvf mfs-1.6.27-5.tar.gz -C /opt/ [root@localhost mfs]# cd /opt/mfs-1.6.27/ ./configure \ --prefix=/usr/local/mfs \ --with-default-user=mfs \ --with-default-group=mfs \ --disable-mfsmaster \ --disable-mfsmount make && make install [root@localhost mfs-1.6.27]# cd /usr/local/mfs/etc/mfs/ [root@localhost mfs]# ls mfschunkserver.cfg.dist mfshdd.cfg.dist [root@localhost mfs]# cp mfschunkserver.cfg.dist mfschunkserver.cfg #存储服务器配置文件拷贝一份出来 [root@localhost mfs]# cp mfshdd.cfg.dist mfshdd.cfg #硬盘配置文件拷贝出来 #指向主服务器 [root@localhost mfs]# vim mfschunkserver.cfg 12 MASTER_HOST = 192.168.136.186 [root@localhost mfs]# vim mfshdd.cfg /data #加上指定存储目录 #创建存储目录 [root@localhost mfs]# mkdir /data [root@localhost mfs]# chown -R mfs.mfs /data/ #递归提权 [root@localhost mfs]# /usr/local/mfs/sbin/mfschunkserver start #开启存储服务器
4存储端跟上面存储端一样的操作(这里不重复了)
5客户端,专门连接master进行挂载
[root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0 yum install gcc gcc-c++ zlib-devel -y #安装内核模块fuse,客户端和master挂载 [root@localhost ~]# mkdir /abc [root@localhost ~]# mount.cifs //192.168.100.25/mfs /abc/ Password for root@//192.168.100.25/mfs: [root@localhost ~]# cd /abc/mfs/ [root@localhost mfs]# tar zxvf fuse-2.9.2.tar.gz -C /opt/ [root@localhost mfs]# cd /opt/ [root@localhost opt]# cd fuse-2.9.2/ [root@localhost fuse-2.9.2]# ./configure make && make install #更改环境变量.检索系统中安装信息 [root@localhost fuse-2.9.2]# vim /etc/profile export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH [root@localhost fuse-2.9.2]# source /etc/profile #安装mfs客户端 [root@localhost fuse-2.9.2]# useradd -s /sbin/nologin mfs [root@localhost fuse-2.9.2]# cd /abc/mfs/ [root@localhost mfs]# tar zxvf mfs-1.6.27-5.tar.gz -C /opt/ [root@localhost mfs]# cd /opt/mfs-1.6.27/ ./configure \ --prefix=/usr/local/mfs \ --with-default-user=mfs \ --with-default-group=mfs \ --disable-mfsmaster \ --disable-mfschunkserver \ --enable-mfsmount #开启客户端 make && make install mkdir /opt/mfs modprobe fuse #加载fuse模块到内核 #挂载到主服务器 /usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.136.186 [root@localhost mfs-1.6.27]# df -hT 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root xfs 20G 3.6G 17G 18% / devtmpfs devtmpfs 897M 0 897M 0% /dev tmpfs tmpfs 912M 0 912M 0% /dev/shm tmpfs tmpfs 912M 9.0M 903M 1% /run tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sda1 xfs 4.0G 179M 3.9G 5% /boot /dev/mapper/centos-home xfs 10G 37M 10G 1% /home tmpfs tmpfs 183M 20K 183M 1% /run/user/0 /dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64 //192.168.100.25/mfs cifs 300G 175G 126G 59% /abc 192.168.136.186:9421 fuse.mfs 15G 0 15G 0% /opt/mfs #优化客户端 [root@localhost mfs-1.6.27]# vim /etc/profile #加入环境变量路径,下次可以直接挂载 export PATH=/usr/local/mfs/bin:$PATH #复制一份文件副本出来 [root@localhost mfs-1.6.27]# mfsgetgoal -r /opt/mfs/ /opt/mfs/: directories with goal 1 : #master启动监控状态 [root@localhost ~]# /usr/local/mfs/sbin/mfscgiserv lockfile created and locked starting simple cgi server (host: any , port: 9425 , rootpath: /usr/local/mfs/share/mfscgi)
登录192.168.136.186:9425验证状态
以上就是我们全部的内容了
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~