3.1 MFS分布式文件系统_部署 高级特性 存储类

MFS(分布式文件系统)

MooseFS是一种分布式文件系统,它把数据分散存放在多个物理服务器上,前面只放置一台负责“调度”元数据服务器,最终呈现给用户的则是一个统一的资源。相对于集中式文件系统来说,分布式系统拥有更好的扩展性、稳定性、数据的安全性。

实验环境

3台全新的虚拟机
(单体磁盘容量不够(mysql),所以后端会挂一个分布式文件系统)
MFS:一般的分布式文件系统
HADOOP:海量的文件系统(大数据平台)

官网:moosefs.com

master上安装:cgi(接口,管理mfs),cli-命令行操作mgs
(下载的是systemd)
master只负责存储元数据(文件多大,名字叫什么,大的文件被分成多少个块进行存储,多少个副本)
块服务器:文件多大,存储为多少个块(cuhnkserver)

[root@foundation21 3.0.115]# yum install -y moosefs-client-3.0.115-1.rhsystemd.x86_64.rpm
[root@server11 3.0.115]# yum  install -y moosefs-cgi-3.0.115-1.rhsystemd.x86_64.rpm
[root@server11 3.0.115]# yum install -y moosefs-cgiserv-3.0.115-1.rhsystemd.x86_64.rpm
[root@server11 3.0.115]# yum install -y moosefs-master-3.0.115-1.rhsystemd.x86_64.rpm
[root@server11 3.0.115]# yum install -y moosefs-cli-3.0.115-1.rhsystemd.x86_64.rpm
[root@server12 ~]# yum install -y moosefs-chunkserver-3.0.115-1.rhsystemd.x86_64.rpm 
[root@server13 ~]# yum install -y moosefs-chunkserver-3.0.115-1.rhsystemd.x86_64.rpm 
[root@server14 ~]# yum install -y moosefs-chunkserver-3.0.115-1.rhsystemd.x86_64.rpm 

MFS的部署和配置

mfs master

  1. 在master端只会用到mfsmaster.cfg文件
[root@server11 ~]# cd /etc/mfs/
[root@server11 mfs]# ls
mfsexports.cfg         mfsmaster.cfg         mfstopology.cfg
mfsexports.cfg.sample  mfsmaster.cfg.sample  mfstopology.cfg.sample
[root@server11 mfs]# vim mfsmaster.cfg

在这里插入图片描述

  1. 写入解析
[root@server11 mfs]# vim /etc/hosts
172.25.21.11 server11   mfsmaster
  1. 开启服务,可以查看到开了4个端口
[root@server11 mfs]# systemctl start moosefs-master
[root@server11 mfs]# systemctl start moosefs-cgiserv.service 
[root@server11 mfs]# netstat -antpl
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:9419            0.0.0.0:*               LISTEN      4491/mfsmaster      
tcp        0      0 0.0.0.0:9420            0.0.0.0:*               LISTEN      4491/mfsmaster      
tcp        0      0 0.0.0.0:9421            0.0.0.0:*               LISTEN      4491/mfsmaster      
tcp        0      0 0.0.0.0:9425            0.0.0.0:*               LISTEN      14512/python2       
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3485/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      3734/master         
tcp        0      0 172.25.21.11:9425       172.25.21.250:56438     TIME_WAIT   -                   
tcp        0      0 172.25.21.11:32984      172.25.21.11:9421       TIME_WAIT   -                   
tcp        0      0 172.25.21.11:9425       172.25.21.250:56444     ESTABLISHED 14512/python2       
tcp        0      0 172.25.21.11:9425       172.25.21.250:56442     ESTABLISHED 14512/python2       
tcp        0      0 172.25.21.11:9425       172.25.21.250:56436     TIME_WAIT   -                   
tcp        0      0 172.25.21.11:22         172.25.21.250:38842     ESTABLISHED 4232/sshd: root@pts 
tcp6       0      0 :::22                   :::*                    LISTEN      3485/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      3734/master         

在这里插入图片描述

disk:后端chunkserver的磁盘
exports:输出
mount:后端的挂载

chunk server1

[root@server12 ~]# yum install -y moosefs-chunkserver-3.0.115-1.rhsystemd.x86_64.rpm 
  1. mfsmaster写入解析
[root@server12 ~]# vim /etc/hosts
172.25.21.11 server11   mfsmaster
  1. 生产环境下,一般会数据会放在独立的硬盘上
    添加虚拟磁盘10G
    (服务器支持热插拔,服务器用的是sas硬盘,和普通的sata硬盘不太一样,服务器可以不用重启)
    在这里插入图片描述

  2. 新建一个新的主分区

[root@server12 ~]# fdisk -l

[root@server12 ~]# fdisk /dev/vdb

在这里插入图片描述在这里插入图片描述

  1. 格式化
[root@server12 ~]# mkfs.xfs /dev/vdb1
meta-data=/dev/vdb1              isize=512    agcount=4, agsize=655296 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2621184, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
  1. 块存储是会被向里面放数据的,所以,不能将新划分的磁盘分区挂载到var下的数据目录
    需要自己创建一个挂载点
[root@server12 ~]# mkdir /mnt/chunk1
  1. 设定开机自动挂载
    mount -a 测试
    注意
    Q:这里为什么使用的是UUID,而不是设备名称
    A:有时,我们会插很多块硬盘,操作系统会根据谁最先加载,给谁分配名称,因此设备名称是会发生改变的
[root@server12 ~]# blkid 
/dev/vda1: UUID="4d8980e8-3bfd-4f1c-8c4a-f564469c0c0f" TYPE="xfs" 
/dev/vda2: UUID="lMYPbH-lRJR-fqKA-Wqdn-0va1-Pype-MYm09f" TYPE="LVM2_member" 
/dev/mapper/rhel-root: UUID="162c3806-a9cf-42e0-9781-37598a84ad31" TYPE="xfs" 
/dev/mapper/rhel-swap: UUID="d6202848-a5fa-4955-bebe-62f123472ef0" TYPE="swap" 
/dev/vdb1: UUID="81542575-a116-44bf-92e5-739065300917" TYPE="xfs" 
[root@server12 ~]# vim /etc/fstab 
UUID="81542575-a116-44bf-92e5-739065300917"     /mnt/chunk1     xfs     defaults        0 0
[root@server12 ~]# mount -a

在这里插入图片描述

[root@server12 ~]# df
Filesystem            1K-blocks    Used Available Use% Mounted on
/dev/mapper/rhel-root  17811456 1161744  16649712   7% /
devtmpfs                1011448       0   1011448   0% /dev
tmpfs                   1023468       0   1023468   0% /dev/shm
tmpfs                   1023468   17036   1006432   2% /run
tmpfs                   1023468       0   1023468   0% /sys/fs/cgroup
/dev/vda1               1038336  135076    903260  14% /boot
tmpfs                    204696       0    204696   0% /run/user/0
/dev/vdb1              10474496   32992  10441504   1% /mnt/chunk1
  1. 在配置文件中写入设备存储点,并且该挂载点一定要有mfs的写入权限
[root@server12 ~]# vim /etc/mfs/mfshdd.cfg
/mnt/chunk1

在这里插入图片描述

  1. chown 改权限属性
[root@server12 ~]# chown mfs.mfs /mnt/chunk1/
  1. systemd启动服务
    先挂载设备,再去改权限,否则,systemd启动会报错
[root@server12 ~]# systemctl start moosefs-chunkserver
  1. 查看端口的连接情况
    start chunkserver:9422端口
[root@server12 ~]# netstat -antpl | grep mfs
tcp        0      0 0.0.0.0:9422            0.0.0.0:*               LISTEN      14350/mfschunkserve 
tcp        0      0 172.25.21.12:49680      172.25.21.11:9420       ESTABLISHED 14350/mfschunkserve 

在这里插入图片描述

chunk server2

和chunk server1的操作一致
在这里插入图片描述

mfs client

我选取宿主主机作为客户端

[root@foundation21 3.0.115]# yum install -y moosefs-client-3.0.115-1.rhsystemd.x86_64.rpm
  1. 写入mfsmaster到本地解析文件
[root@foundation21 3.0.115]# vim /etc/hosts
172.25.21.11 server11   mfsmaster
  1. 在配置文件中写入设备存储点
[root@foundation21 3.0.115]# vim /etc/mfs/mfsmount.cfg
/mnt/mfs
  1. 创建一个空的目录/mnt/mfs,作为数据目录
[root@foundation21 mnt]# mkdir /mnt/mfs
  1. 挂载成功
[root@foundation21 mnt]# mfsmount 
mfsmaster accepted connection with parameters: read-write,restricted_ip,admin ; root mapped to root:root
[root@foundation21 mfs]# df
Filesystem                         1K-blocks     Used Available Use% Mounted on
devtmpfs                             4006336        0   4006336   0% /dev
tmpfs                                4022240    28644   3993596   1% /dev/shm
tmpfs                                4022240    10032   4012208   1% /run
tmpfs                                4022240        0   4022240   0% /sys/fs/cgroup
/dev/mapper/rhel_foundation21-root 225092216 59598588 165493628  27% /
/dev/sda1                            1038336   683540    354796  66% /boot
tmpfs                                 804448       28    804420   1% /run/user/1000
/dev/sdb1                           30703584 15119616  15583968  50% /run/media/kiosk/OUTLOOK
/dev/loop0                           4391278  4391278         0 100% /var/www/html/westos
mfsmaster:9421                      20948992   590592  20358400   3% /mnt/mfs
[root@foundation21 mfs]# mount | grep mfs
mfsmaster:9421 on /mnt/mfs type fuse.mfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)

在这里插入图片描述

  1. 查看端口连接情况
[root@foundation21 mnt]# netstat -antpl | grep mfs
tcp        0      0 127.0.0.1:42581         0.0.0.0:*               LISTEN      5550/mfsmount (moun 
tcp        0      0 172.25.21.250:58114     172.25.21.11:9421       ESTABLISHED 5550/mfsmount (moun 

metaloggers:元记录器
安装之后,直接启动,作为冷备,周期化的从master端,同步元数据的变化
当master挂了之后,可以从metaloggers,成为master(疑惑)

MFS的高级特性

冗余goal设置

  1. client客户端的数据目录/mnt/mfs下创建2个临时的目录
[root@foundation21 mfs]# mkdir dir1
[root@foundation21 mfs]# mkdir dir2
  1. 使用mfsgetgoal命令查看该目录副本数量
    目标(goal)是指文件被复制的份数
    默认创建的目录可以存放的副本都为2
    因为当前只有2个chunkserver (后端存储)
    dir1:22表示在这个目录存放的文件,会自动保存2份
[root@foundation21 mfs]# mfsgetgoal dir1
dir1: 2
[root@foundation21 mfs]# mfsgetgoal dir2
dir2: 2
  1. mfssetgoal设定/mnt/mfs/dir1的副本数量为1
[root@foundation21 mfs]# mfssetgoal -r 1 dir1
dir1:
 inodes with goal changed:                       1
 inodes with goal not changed:                   0
 inodes with permission denied:                  0
[root@foundation21 mfs]# mfsgetgoal dir1
dir1: 1
[root@foundation21 mfs]# mfsgetgoal dir2
dir2: 2
  1. 复制文件到这2个目录中
[root@foundation21 mfs]# cp /etc/passwd dir1
[root@foundation21 mfs]# cp /etc/fstab dir2
  1. 进入dir1和dir2
    使用mfsfileinfo查看文件信息,发现该文件的副本被存储在server2或者server3上

dir1中的文件passwd只备份了一份,在chunk server2上(server13上)

[root@foundation21 mfs]# cd dir1
[root@foundation21 dir1]# mfsfileinfo passwd 
passwd:
	chunk 0: 0000000000000001_00000001 / (id:1 ver:1)
		copy 1: 172.25.21.13:9422 (status:VALID)

客户端从master查询chunksever(文件)存储在哪个数据块服务器上
mfsfileinfo的信息是master返回给客户端的
之后,客户端可以直接从相应的chunkserver上取数据

dir2中的文件fstab备份了2份,分别在chunk server1和chunk server2上

[root@foundation21 mfs]# cd dir2
[root@foundation21 dir2]# mfsfileinfo fstab 
fstab:
	chunk 0: 0000000000000002_00000001 / (id:2 ver:1)
		copy 1: 172.25.21.12:9422 (status:VALID)
		copy 2: 172.25.21.13:9422 (status:VALID)

现在模拟故障,
chunk server2(server3)宕掉,
此时,dir1中的文件却无法访问
dir2中的文件还有一个副本

[root@server13 ~]# systemctl stop moosefs-chunkserver.service 
[root@foundation21 dir1]# mfsfileinfo passwd 
passwd:
	chunk 0: 0000000000000001_00000001 / (id:1 ver:1)
		no valid copies !!!
[root@foundation21 dir2]# mfsfileinfo fstab 
fstab:
	chunk 0: 0000000000000002_00000001 / (id:2 ver:1)
		copy 1: 172.25.21.12:9422 (status:VALID)

大文件被切片

写的情况:见截图
master会在后端创建新的chunkserver,之后,master告诉客户端哪个cunkserver
然后,客户端写入数据,cuhnkserver根据chunk的块,生成相应数量的副本
一般大文件会被分割,切片

  1. 生成大文件(100M)
[root@foundation21 dir2]# dd if=/dev/zero of=bigfile bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.413933 s, 253 MB/s
  1. mfs的最大文件系统是64字节
    因此,大文件bigfile会被切片(会被2个chunk server 存储,一个chunk最大是64字节,每个块被分配到2个节点上)
    还要注意的是,bigfile是在dir2下的,
    对于dir2,我设置它的副本数为2,因此,拷贝bigfile时,每个chunk中都有2份副本;
[root@foundation21 dir2]# mfsfileinfo bigfile 
bigfile:
	chunk 0: 0000000000000003_00000001 / (id:3 ver:1)
		copy 1: 172.25.21.12:9422 (status:VALID)
		copy 2: 172.25.21.13:9422 (status:VALID)
	chunk 1: 0000000000000004_00000001 / (id:4 ver:1)
		copy 1: 172.25.21.12:9422 (status:VALID)
		copy 2: 172.25.21.13:9422 (status:VALID)

模拟故障,当 chunk server2 挂掉之后,bigfile依旧完整

[root@server13 ~]# systemctl stop moosefs-chunkserver.service 
[root@foundation21 dir2]# mfsfileinfo bigfile 
bigfile:
	chunk 0: 0000000000000005_00000001 / (id:5 ver:1)
		copy 1: 172.25.21.12:9422 (status:VALID)
	chunk 1: 0000000000000006_00000001 / (id:6 ver:1)
		copy 1: 172.25.21.12:9422 (status:VALID)

垃圾回收站

  1. 删除dir1目录下的passwd文件
[root@foundation21 mfs]# cd dir1
[root@foundation21 dir1]# ls
passwd
[root@foundation21 dir1]# rm -fr passwd 
[root@foundation21 dir1]# ls
  1. 创建一个新的目录作为存储点/mnt/mfsmeta
[root@foundation21 mnt]# mkdir mfsmeta
[root@foundation21 mnt]# mfsmount -m /mnt/mfsmeta/
mfsmaster accepted connection with parameters: read-write,restricted_ip
[root@foundation21 mnt]# mount | grep mfs
mfsmaster:9421 on /mnt/mfs type fuse.mfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
mfsmaster:9421 on /mnt/mfsmeta type fuse.mfsmeta (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
  1. 挂载成功之后,进入该目录,可以看到2个目录sustainedtrash,进入trash看到里面有很多的回收站

删除文件可以通过MFSMETA 文件系统,特别是它包含目录的trash (包含任何可以被还原的被删除文件的信息)和trash/undel (用于获取文件)。只有管理员有权限访问MFSMETA(用户的uid 0,通常是root)

[root@foundation21 mnt]# cd mfsmeta/
[root@foundation21 mfsmeta]# ls
sustained  trash
[root@foundation21 mfsmeta]# cd trash/
[root@foundation21 trash]# ls

在这里插入图片描述

  1. trash目录中使用find命令查找我们要找的文件
    将该文件移动到trash/undel
[root@foundation21 trash]# find -name *passwd*
./004/00000004|dir1|passwd
[root@foundation21 trash]# cd 004
[root@foundation21 004]# ls
'00000004|dir1|passwd'   undel
[root@foundation21 004]# mv 00000004\|dir1\|passwd undel/
  1. 回到dir1目录,验证实验效果
[root@foundation21 004]# cd /mnt/mfs/dir1
[root@foundation21 dir1]# ls
passwd
[root@foundation21 dir1]# mfsfileinfo passwd 
passwd:
	chunk 0: 0000000000000001_00000001 / (id:1 ver:1)
		copy 1: 172.25.21.12:9422 (status:VALID)

存储类

补充知识:
朋友圈信息设置为3天可见(热点数据是在3天前)
因此,最热的数据,我们需要将它们放在IO最高的地方(总结来说,就是高IO,固态硬盘,存2份)
而3天之后,热数据转化为冷数据,可以放在机械盘上(sata硬盘,存1份)
等到一个星期之后,这些数据就可以放在大容量对象存储空间里
在这里插入图片描述

截图:
2个master==高可用

存储类的编写类型

格式说明
A,B一份在B机房,一份在A机房
A,*一份在A机房,另一份随意
* ,*随机
AB,C+D一份必须在具有A和B的节点上,一份必须在有C或者D的节点上
A,B[X+Y],C[X+Y]一份在A机房,一份在BX或者BY机房
A,A2A机房
AS,2B[H+S]一份在AS上,另外2份在B机房的固态盘或者机械盘上(3份)

数据的分布

怎么样去定位(修改标签)

在chunk server1的配置文件中写入标签

[root@server12 ~]# cd /etc/mfs/
[root@server12 mfs]# ls
mfschunkserver.cfg  mfschunkserver.cfg.sample  mfshdd.cfg  mfshdd.cfg.sample
[root@server12 mfs]# vim mfschunkserver.cfg
LABELS = A
[root@server12 mfs]# systemctl reload moosefs-chunkserver.service 

在这里插入图片描述

在chunk server2的配置文件写入标签

[root@server13 ~]# vim /etc/mfs/mfschunkserver.cfg
LABELS = B
[root@server13 ~]# systemctl reload moosefs-chunkserver.service 

在这里插入图片描述在这里插入图片描述

插入: 再添加一个chunk server3(server4)

  • 安装chunk server
[root@server14 ~]# yum install -y moosefs-chunkserver-3.0.115-1.rhsystemd.x86_64.rpm 
  • 修改解析
[root@server14 ~]# vim /etc/hosts
172.25.21.11 server11   mfsmaster
  • 创建一个空目录,作为设备存储点;
[root@server14 ~]# mkdir /mnt/chunk3
[root@server14 ~]# vim /etc/mfs/mfshdd.cfg
/mnt/chunk3
  • 设定设备的用户和用户组
[root@server14 ~]# chown mfs.mfs /mnt/chunk3/
  • 写标签
[root@server14 ~]# vim /etc/mfs/mfschunkserver.cfg
LABELS = A
  • 启动
[root@server14 ~]# systemctl start moosefs-chunkserver

存储类

Q: 为什么使用存储类?
A: 之前拷贝副本都是全局的。现在有3个chunkserver,怎么控制文件落到指定的节点上,这就需要存储类

存储类:
拥有A标签的都在同一个机房(class_2A);
一个文件在A机房,也要在B机房(双机房,双冗余,class_AB)

  • 创建2个副本都有A的标签,2个副本存储在A机房
mfsscadmin create 2A class_2A
  • 创建2个副本,一个副本存储在A机房,一个副本存储在B机房
mfsscadmin create AB class_AB

在这里插入图片描述

  1. 创建存储类
[root@foundation21 dir1]# mfsscadmin create 2A class_2A
storage class make class_2A: ok
[root@foundation21 mfs]# mfsscadmin create A,B class_AB
storage class make class_AB: ok
  1. 设定文件落在哪些节点上
[root@foundation21 dir2]# mfsfileinfo bigfile 
bigfile:
	chunk 0: 0000000000000007_00000001 / (id:7 ver:1)
		copy 1: 172.25.21.12:9422 (status:VALID)
		copy 2: 172.25.21.13:9422 (status:VALID)
	chunk 1: 0000000000000008_00000001 / (id:8 ver:1)
		copy 1: 172.25.21.12:9422 (status:VALID)
		copy 2: 172.25.21.13:9422 (status:VALID)
[root@foundation21 dir2]# mfssetsclass class_2A bigfile 
bigfile: storage class: 'class_2A'
  1. 查看结果
    之前bigfile一直在12和13号主机保存,现在在12和14主机保存
    因为,class_2A中的主机12的标签是A,14主机的标签是A
[root@foundation21 dir2]# mfsfileinfo bigfile 
bigfile:
	chunk 0: 0000000000000007_00000001 / (id:7 ver:1)
		copy 1: 172.25.21.12:9422 (status:VALID)
		copy 2: 172.25.21.14:9422 (status:VALID)
	chunk 1: 0000000000000008_00000001 / (id:8 ver:1)
		copy 1: 172.25.21.12:9422 (status:VALID)
		copy 2: 172.25.21.14:9422 (status:VALID)
  1. class_AB的测试结果如下
[root@foundation21 dir1]# ls
passwd
[root@foundation21 dir1]# mfsfileinfo passwd 
passwd:
	chunk 0: 0000000000000001_00000001 / (id:1 ver:1)
		copy 1: 172.25.21.12:9422 (status:VALID)
[root@foundation21 dir1]# mfssetsclass class_AB passwd 
passwd: storage class: 'class_AB'
[root@foundation21 dir1]# mfsfileinfo passwd 
passwd:
	chunk 0: 0000000000000001_00000001 / (id:1 ver:1)
		copy 1: 172.25.21.12:9422 (status:VALID)
		copy 2: 172.25.21.13:9422 (status:VALID)
  1. 删除存储类
    注意:删除之前,要将该类中的数据进行迁移,否则会出现报错(该存储类正在被使用)
[root@foundation21 dir1]# mfsscadmin create 3B class_B
storage class make class_B: ok
[root@foundation21 dir1]# mfsscadmin delete class_B
storage class remove class_B: error: Class in use

迁移数据之后,就可以删除了

[root@foundation21 dir1]# mfssetsclass class_2A passwd
passwd: storage class: 'class_2A'
[root@foundation21 dir1]# mfsscadmin delete class_B
storage class remove class_B: ok

固态盘S和机械盘H

  1. chunk server1设置为固态盘
[root@server12 ~]# vim /etc/mfs/mfschunkserver.cfg
LABELS = A S
[root@server12 ~]# systemctl reload moosefs-chunkserver.service 

在这里插入图片描述

  1. chunk server2设置为固态盘
[root@server13 ~]# vim /etc/mfs/mfschunkserver.cfg
LABELS = B S
[root@server13 ~]# systemctl reload moosefs-chunkserver.service 

在这里插入图片描述

  1. chunk server3设置为机械盘
[root@server14 ~]# vim /etc/mfs/mfschunkserver.cfg
LABELS = A H
[root@server14 ~]# systemctl reload moosefs-chunkserver

在这里插入图片描述

  1. 客户端创建存储类
[root@foundation21 mfs]# mfsscadmin create AS,BS class_ASBS
storage class make class_ASBS: ok
[root@foundation21 mfs]# mfssetsclass class_ASBS dir1/passwd 
dir1/passwd: storage class: 'class_ASBS'
[root@foundation21 mfs]# mfsfileinfo dir1/passwd 
dir1/passwd:
	chunk 0: 0000000000000001_00000001 / (id:1 ver:1)
		copy 1: 172.25.21.12:9422 (status:VALID)
		copy 2: 172.25.21.13:9422 (status:VALID)

在这里插入图片描述

补充:

AS,2B[H+S]:1份在AS上,另外2份在B机房的固态盘或者机械盘上(3份)

[root@foundation21 mfs]# mfsscadmin create BS,2A[S+H] class_SH
storage class make class_SH: ok
[root@foundation21 mfs]# mfssetsclass class_SH dir1/passwd 
dir1/passwd: storage class: 'class_SH'
[root@foundation21 mfs]# mfsfileinfo dir1/passwd 
dir1/passwd:
	chunk 0: 0000000000000001_00000001 / (id:1 ver:1)
		copy 1: 172.25.21.12:9422 (status:VALID)
		copy 2: 172.25.21.13:9422 (status:VALID)
		copy 3: 172.25.21.14:9422 (status:VALID)

在这里插入图片描述

30天数据迁移

  1. 设定chunk server2的磁盘类别
[root@server13 ~]# vim /etc/mfs/mfschunkserver.cfg
LABELS = A B S H
[root@server13 ~]# systemctl reload moosefs-chunkserver.service 
  1. 迁移数据
    -K:保留在AS和BS上
    -A:打包数据到AH和BH上
    -d:天数
[root@foundation21 mfs]# mfsscadmin create -C 2AS -K AS,BS -A AH,BH -d 30 class_CKd
storage class make class_CKd: ok
[root@foundation21 mfs]# mfsfileinfo dir1/passwd 
dir1/passwd:
	chunk 0: 0000000000000001_00000001 / (id:1 ver:1)
		copy 1: 172.25.21.12:9422 (status:VALID)
		copy 2: 172.25.21.13:9422 (status:VALID)
		copy 3: 172.25.21.14:9422 (status:VALID)
[root@foundation21 mfs]# mfssetsclass class_CKd dir1/passwd 
dir1/passwd: storage class: 'class_CKd'
[root@foundation21 mfs]# mfsfileinfo dir1/passwd 
dir1/passwd:
	chunk 0: 0000000000000001_00000001 / (id:1 ver:1)
		copy 1: 172.25.21.12:9422 (status:VALID)
		copy 2: 172.25.21.13:9422 (status:VALID)

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值