【Linux进阶篇】磁盘及分区

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【Linux进阶篇】磁盘及分区

文件系统

       操作系统用于明确存储设备(常见的是磁盘)或分区上的文件的方法和数据结构;  即在存储设备上组织文件的方法。  linux常见的文件系统:

       EXT4是Linux系统下的日志文件系统,是EXT3文件系统的后继版本。

(1)Ext4的文件系统容量达到1EB,而文件容量则达到16TB

(2)理论上支持无限数量的子目录

(3)Ext4文件系统使用64位空间记录块数量和i-节点数量

(4)Ext4的多块分配器支持一次调用分配多个数据块

       xfs是一种非常优秀的日志文件系统,SGI公司设计的,被称为业界最先进的、最具可升级性的文件系统技术

(1)根据所记录的日志在很短的时间内迅速恢复磁盘文件内容

(2)采用优化算法,日志记录对整体文件操作影响非常小

(3)是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间

(4)能以接近裸设备I/O的性能存储数据

虚拟机添加磁盘

       关机添加磁盘,系统自动识别 或 开机添加磁盘,需要使用下面命令识别

1. echo "- - -" >> /sys/class/scsi_host/host0/scan
2. echo "- - -" >> /sys/class/scsi_host/host1/scan
3. echo "- - -" >> /sys/class/scsi_host/host2/scan 
4. fdisk -l

磁盘分区方式

       MBR:主引导记录,支持4主或3主1扩展多逻辑,每分区最大2TB,兼容性好。

       GPT:是GUID分区表(GUID Partition Table)的缩写; 含义为“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准。 自纠错能力强,一块磁盘上主分区数量不受(4个的)限制,支持大于18EB的总容量, 几乎没有上限,最大支持到128个分区,分区大小支持到256TB。 分区命令

1. fdisk分区方式

[root@localhost ~]# fdisk /dev/sdb

p: 显示当前硬件的分区,包括没有保存的改动

n: 创建一个新的分区

d:删除一个分区

w: 保存并退出

q: 不保存退出

t: 修改分区类型(文件系统类型)

l: 显示所支持的所有类型

2. gdisk分区方式

[root@localhost ~]# gdisk /dev/sdb

p: 显示当前硬件的分区,包括没有保存的改动

n: 创建一个新的分区

d:删除一个分区

w: 保存并退出

q: 不保存退出

t: 修改分区类型(文件系统类型)

l: 显示所支持的所有类型

分区号码有区别:fdisk 82   gdisk 8200

分区格式化

格式化文件系统分别为ext4和xfs

1. mkfs.ext4 /dev/sdb1
2. mkfs.xfs  /dev/sdc1

挂载磁盘

1. 临时挂载

[root@localhost ~]# mount /dev/sdb1 /mnt

2. 永久挂载

1. [root@localhost ~]# vim /etc/fstab
2. /dev/sdb1   /mnt    xfs defaults  0 0

磁盘高级管理

LVM:逻辑卷

       从卷组中分割的一块空间,用于建立文件系统,动态调整分区大小,扩展性好

创建PV 物理卷

pvcreate :将实体 partition 创建成为 PV 例: pvcreate /dev/sdb1 /dev/sdc1

pvscan :搜寻目前系统里面任何具有 PV 的磁盘;

pvdisplay :显示出目前系统上面的 PV 状态;

pvremove :将 PV 属性移除,让该 partition 不具有 PV 属性

创建VG 卷组

vgcreate :创建 VG 的 (-s :后面接 PE 的大小,默认4M)例:vgcreate -s 16m mailbox /dev/sdb1 /dev/sdc1;

vgscan :搜寻系统上面是否有 VG 存在;

vgdisplay :显示目前系统上面的 VG 状态;

vgextend :在 VG 内增加额外的 PV 例:vgextend vg1 /dev/sdd4 /dev/sdb5;

vgreduce :在 VG 内移除 PV;

vgchange :设置 VG 是否启动 (active);

vgremove :删除一个 VG;

创建LV 划分逻辑卷

lvcreate :创建 LV -n 名称 -L 空间大小(<vg) 例:lvcreate -n mail2 -l 1000 mailbox

lvscan :查询系统上面的 LV ;

lvdisplay :显示系统上面的 LV 状态

lvextend :在 LV 里面增加容量!

lvreduce :在 LV 里面减少容量;

lvremove :删除一个 LV

lvresize :对 LV 进行容量大小的调整

重新计算磁盘容量

重新计算磁盘使其生效 (磁盘在使用中,进行空间的扩展)

1. resize2fs   卷名              #ext4文件系统
2. xfs_growfs  卷名              #xfs文件系统

LVM案例

创建卷组mailbox,逻辑卷mail

1. [root@localhost ~]# echo "- - -" >> /sys/class/scsi_host/host0/scan         #开机加入硬盘需要刷新
2. [root@localhost ~]# echo "- - -" >> /sys/class/scsi_host/host1/scan
3. [root@localhost ~]# echo "- - -" >> /sys/class/scsi_host/host2/scan 
4. [root@localhost ~]# fdisk -l
5. [root@localhost ~]# fdisk /dev/sdb                                      n-p-回车-回车-回车-w
6. [root@localhost ~]# fdisk /dev/sdc
7. [root@localhost ~]# fdisk /dev/sdd
8. [root@localhost ~]# fdisk -l                                            #查看三个硬盘是否添加成功
9. [root@localhost ~]# pvcreate /dev/sdb1 /dev/sdc1                        #创建pv
10.   Physical volume "/dev/sdb1" successfully created. 
11.   Physical volume "/dev/sdc1" successfully created.
12. [root@localhost ~]# vgcreate -s 16m mailbox /dev/sdb1 /dev/sdc1         #创建vg卷组,-s指定PE大小
13.   Volume group "mailbox" successfully created
14. [root@localhost ~]# vgscan                                              #扫描卷组
15.   Reading volume groups from cache. 
16.   Found volume group "centos" using metadata type lvm2
17.   Found volume group "mailbox" using metadata type lvm2
18.   [root@localhost ~]# vgdisplay mailbox                                 #查看卷组状态
19.   --- Volume group ---
20.   VG Name               mailbox
21.   System ID             
22.   Format                lvm2
23.   Metadata Areas        2
24.   Metadata Sequence No  1
25.   VG Access             read/write
26.   VG Status             resizable
27.   MAX LV                0
28.   Cur LV                0
29.   Open LV               0
30.   Max PV                0
31.   Cur PV                2
32.   Act PV                2
33.   VG Size               <39.97 GiB
34.   PE Size               16.00 MiB
35.   Total PE              2558
36.   Alloc PE / Size       0 / 0   
37.   Free  PE / Size       2558 / <39.97 GiB
38.   VG UUID               I9dvdd-VKKf-0Y0f-hxKo-Ivld-Ed4y-i9oFgR
39. [root@localhost ~]# lvcreate -n mail1 -L 10G mailbox                #创建lv逻辑卷,名称为mail1,大小为10G,从mailbox卷组拿
40.   Logical volume "mail1" created.
41. [root@localhost ~]# lvdisplay /dev/mailbox/mail1                    #查看逻辑卷状态
42.   --- Logical volume ---
43.   LV Path                /dev/mailbox/mail1
44.   LV Name                mail1
45.   VG Name                mailbox
46.   LV UUID                CahigK-NdHF-QubM-jBwM-TS3L-xgTf-20n3eg
47.   LV Write Access        read/write
48.   LV Creation host, time localhost.localdomain, 2023-03-04 10:43:49 +0800
49.   LV Status              available
50. # open                 0
51.   LV Size                10.00 GiB
52.   Current LE             640
53.   Segments               1
54.   Allocation             inherit
55.   Read ahead sectors     auto
56.   - currently set to     8192
57.   Block device           253:2
58. [root@localhost ~]# mkdir /mail1                                #创建挂载目录
59. [root@localhost ~]# mkfs.xfs /dev/mailbox/mail1                 #格式化磁盘为xfs格式
60. meta-data=/dev/mailbox/mail1     isize=512    agcount=4, agsize=655360 blks
61.          =                       sectsz=512   attr=2, projid32bit=1
62.          =                       crc=1        finobt=0, sparse=0
63. data     =                       bsize=4096   blocks=2621440, imaxpct=25
64.          =                       sunit=0      swidth=0 blks
65. naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
66. log      =internal log           bsize=4096   blocks=2560, version=2
67.          =                       sectsz=512   sunit=0 blks, lazy-count=1
68. realtime =none                   extsz=4096   blocks=0, rtextents=0
69. [root@localhost ~]# mount /dev/mailbox/mail1 /mail1/            #挂载mail1
70. [root@localhost ~]# lvcreate -n mail2 -l 1000 mailbox           #创建lv逻辑卷mail2
71.   Logical volume "mail2" created.
72. [root@localhost ~]# lvdisplay /dev/mailbox/mail2                #查看逻辑卷mail2
73.   --- Logical volume ---
74.   LV Path                /dev/mailbox/mail2
75.   LV Name                mail2
76.   VG Name                mailbox
77.   LV UUID                ftxk6Y-Luwl-thVS-1tHH-6pTH-93sk-GTvznI
78.   LV Write Access        read/write
79.   LV Creation host, time localhost.localdomain, 2023-03-04 10:46:50 +0800
80.   LV Status              available
81. # open                 0
82.   LV Size                15.62 GiB
83.   Current LE             1000
84.   Segments               1
85.   Allocation             inherit
86.   Read ahead sectors     auto
87.   - currently set to     8192
88.   Block device           253:3
89. [root@localhost ~]# mkdir /mail2                                #创建mail2挂载目录
90. [root@localhost ~]# mkfs.xfs /dev/mailbox/mail2                 #格式化mail2为xfs格式
91. meta-data=/dev/mailbox/mail2     isize=512    agcount=4, agsize=1024000 blks
92.          =                       sectsz=512   attr=2, projid32bit=1
93.          =                       crc=1        finobt=0, sparse=0
94. data     =                       bsize=4096   blocks=4096000, imaxpct=25
95.          =                       sunit=0      swidth=0 blks
96. naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
97. log      =internal log           bsize=4096   blocks=2560, version=2
98.          =                       sectsz=512   sunit=0 blks, lazy-count=1
99. realtime =none                   extsz=4096   blocks=0, rtextents=0
100. [root@localhost ~]# mount /dev/mailbox/mail2 /mail2             #挂载mail2
101. [root@localhost ~]# echo "/dev/mailbox/mail1  /mail1  xfs  defaults 0 0" >> /etc/fstab          #永久挂载
102. [root@localhost ~]# echo "/dev/mailbox/mail2  /mail2  xfs  defaults 0 0" >> /etc/fstab 
103. [root@localhost ~]# cat /etc/fstab              #查看刚才文件是否插入进去,下面省略部分内容
104. [root@localhost ~]# vgdisplay mailbox           #查看mailbox卷组还有多少G
105. #省略部分内容
106. [root@localhost ~]# lvextend -L 15G /dev/mailbox/mail1          #给mail1加到15G
107.   Size of logical volume mailbox/mail1 changed from 10.00 GiB (640 extents) to 15.00 GiB (960 extents).
108.   Logical volume mailbox/mail1 successfully resized.
109. [root@localhost ~]# xfs_growfs /dev/mailbox/mail1               #重新计算磁盘容量
110. meta-data=/dev/mapper/mailbox-mail1 isize=512    agcount=4, agsize=655360 blks
111.          =                       sectsz=512   attr=2, projid32bit=1
112.          =                       crc=1        finobt=0 spinodes=0
113. data     =                       bsize=4096   blocks=2621440, imaxpct=25
114.          =                       sunit=0      swidth=0 blks
115. naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
116. log      =internal               bsize=4096   blocks=2560, version=2
117.          =                       sectsz=512   sunit=0 blks, lazy-count=1
118. realtime =none                   extsz=4096   blocks=0, rtextents=0
119. data blocks changed from 2621440 to 3932160 
120. [root@localhost ~]# lvextend -L 30G /dev/mailbox/mail1              #给mail1加30G发现保存,原因是vg容量不够,需要扩容
121.   Insufficient free space: 960 extents needed, but only 598 available
122. [root@localhost ~]# vgextend mailbox /dev/sdd1                      #把sdd1磁盘给mailbox卷组
123.   Physical volume "/dev/sdd1" successfully created.
124.   Volume group "mailbox" successfully extended
125. [root@localhost ~]# vgdisplay mailbox                               #查看卷组是否为3个pv且磁盘容量正确
126.   --- Volume group ---
127.   VG Name               mailbox
128.   System ID             
129.   Format                lvm2
130.   Metadata Areas        3
131.   Metadata Sequence No  5
132.   VG Access             read/write
133.   VG Status             resizable
134.   MAX LV                0
135.   Cur LV                2
136.   Open LV               2
137.   Max PV                0
138.   Cur PV                3
139.   Act PV                3
140.   VG Size               59.95 GiB
141.   PE Size               16.00 MiB
142.   Total PE              3837
143.   Alloc PE / Size       1960 / 30.62 GiB
144.   Free  PE / Size       1877 / <29.33 GiB
145.   VG UUID               I9dvdd-VKKf-0Y0f-hxKo-Ivld-Ed4y-i9oFgR
146. [root@localhost ~]# lvextend -L 30G /dev/mailbox/mail1              #扩充mail1到30G
147.   Size of logical volume mailbox/mail1 changed from 15.00 GiB (960 extents) to 30.00 GiB (1920 extents).
148.   Logical volume mailbox/mail1 successfully resized.
149. [root@localhost ~]# xfs_growfs /dev/mailbox/mail1                   #重新计算磁盘容量
150. meta-data=/dev/mapper/mailbox-mail1 isize=512    agcount=6, agsize=655360 blks
151.          =                       sectsz=512   attr=2, projid32bit=1
152.          =                       crc=1        finobt=0 spinodes=0
153. data     =                       bsize=4096   blocks=3932160, imaxpct=25
154.          =                       sunit=0      swidth=0 blks
155. naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
156. log      =internal               bsize=4096   blocks=2560, version=2
157.          =                       sectsz=512   sunit=0 blks, lazy-count=1
158. realtime =none                   extsz=4096   blocks=0, rtextents=0
159. data blocks changed from 3932160 to 7864320
160. [root@localhost ~]# df -hT                                  #查看磁盘大小
161. 文件系统                  类型      容量  已用  可用 已用% 挂载点
162. devtmpfs                  devtmpfs  470M     0  470M    0% /dev
163. tmpfs                     tmpfs     487M     0  487M    0% /dev/shm
164. tmpfs                     tmpfs     487M  9.3M  477M    2% /run
165. tmpfs                     tmpfs     487M     0  487M    0% /sys/fs/cgroup
166. /dev/mapper/centos-root   xfs        17G  7.3G  9.8G   43% /
167. /dev/sda1                 xfs      1014M  173M  842M   18% /boot
168. tmpfs                     tmpfs      98M   56K   98M    1% /run/user/0
169. /dev/mapper/mailbox-mail1 xfs        30G   33M   30G    1% /mail1
170. /dev/mapper/mailbox-mail2 xfs        16G   33M   16G    1% /mail2
171. [root@localhost ~]# lvextend -L +4G /dev/mailbox/mail2          #给mail2逻辑卷加4G
172.   Size of logical volume mailbox/mail2 changed from 15.62 GiB (1000 extents) to 19.62 GiB (1256 extents).
173.   Logical volume mailbox/mail2 successfully resized.  
174. [root@localhost ~]# xfs_growfs /dev/mailbox/mail2

添加磁盘配额功能

指定用户存放大小,临时挂载、永久挂载

1. mount -o usrquota,grpquota /挂载盘 /挂载点
2. echo "/挂载盘  /挂载点  xfs defaults,usrquota,grpquota 0 0" >> /etc/fstab

ext4文件系统磁盘配额

  1. 创建test1用户
  2. 创建挂载目录
  3. 给目录其他人权限
  4. 重新挂载
  5. 生成配额文件 quotacheck /data
  6. 开启配额功能 quotaon /data 关闭配额功能: qutoaoff /data
  7. 编辑用户配额 edquota -u test 单位:KB 1024KB=1M 1024M=1GB
1. [root@localhost ~]# useradd test1               #创建用户
2. [root@localhost ~]# mkdir /ext4_data            #创建目录
3. [root@localhost ~]# chmod 777 /ext4_data/       #赋予权限
4. [root@localhost ~]# mount -o usrquota,grpquota,defaults /dev/mailbox/mail1 /ext4_data/              #重新挂载
5. [root@localhost ~]# quotaon -ugv /dev/mailbox/mail1                                                 #启用配额
6. quotaon: Enforcing group quota already on /dev/mapper/mailbox-mail1
7. quotaon: Enforcing user quota already on /dev/mapper/mailbox-mail1
8. [root@localhost ~]# edquota -u test1                        #针对用户配额;(针对组配额 edquota -g 组名)
9. Disk quotas for user test1 (uid 1002):
10.   Filesystem                   blocks       soft       hard     inodes     soft     hard
11.   /dev/mapper/mailbox-mail2          0          0          0          0        0        0
12.   /dev/mapper/mailbox-mail1          0          10M        30M        0        3        5
13. #注:选择挂载的磁盘,soft为软限额;hard为硬限额(第一个组合为大小,第二个组合为个数):wq保存退出
14. bsoft:软配额限制,限制10Mb警告但不强制
15. bhard:硬配额限制,限制最多为30Mb
16. isoft:文件数超过3个警告
17. ihard:文件数5个后不可在创建
18. 
19. #切换用户验证
20. [root@localhost ~]# su - test1              #切换test1
21. Attempting to create directory /home/test1/perl5
22. [test1@localhost ~]$ cd /ext4_data/         #进入/ext4_data/目录
23. [test1@localhost ext4_data]$ touch file{1..6}       #创建6个文件(配额限制最多创建5个)
24. touch: 无法创建"file6": 超出磁盘限额
25. [test1@localhost ext4_data]$ dd if=/dev/zero of=/ext4_data/file1 bs=10M count=5     #使用漏斗命令测试大小(配额限制最多30Mb)
26. dd: 写入"/ext4_data/file1" 出错: 超出磁盘限额
27. 记录了4+0 的读入
28. 记录了3+0 的写出
29. 31457280字节(31 MB)已复制,0.103206 秒,305 MB/秒
30. [test1@localhost ext4_data]$ ll -h file1                    #查看大小限制
31. -rw-rw-r--. 1 test1 test1 30M 3月   4 13:16 file1
32. [test1@localhost ext4_data]$ ls                             #查看数量限制
33. file1  file2  file3  file4  file5

xfs文件系统磁盘配额

  1. 创建用户 user1
  2. 创建挂载目录
  3. 编辑用户配额(也可以给组配额)
  4. 给挂载目录其他人权限
  5. 切换用户验证配额的效果
  6. 可以使用edquota -u 用户名 修改用户的磁盘配额
  7. 开启配额功能 quotaon /data 关闭配额功能: qutoaoff /data
1. [root@localhost ~]# useradd user1                       #创建用户
2. [root@localhost ~]# mkdir /xfs_data                     #创建挂载目录
3. [root@localhost ~]# mount -o usrquota,grpquota /dev/mailbox/mail2 /xfs_data/                                #挂载并启用配额
4. [root@localhost ~]# xfs_quota -x -c 'limit -u bsoft:30M bhard:50M isoft:3 ihard:5 user1' /xfs_data/         #编辑用户配额
5. [root@localhost ~]# chmod 777 /xfs_data/                #赋予权限
6. #切换用户验证
7. [root@localhost ~]# su - user1                          #切换user1用户
8. [user1@localhost ~]$ cd /xfs_data/                      #进入挂载目录
9. [user1@localhost xfs_data]$ touch file{1..10}           #创建file1到10,最多可以创建5个
10. touch: 无法创建"file6": 超出磁盘限额
11. touch: 无法创建"file7": 超出磁盘限额
12. touch: 无法创建"file8": 超出磁盘限额
13. touch: 无法创建"file9": 超出磁盘限额
14. touch: 无法创建"file10": 超出磁盘限额
15. [user1@localhost xfs_data]$ ls                          #查看数量限制
16. file1  file2  file3  file4  file5
17. [user1@localhost xfs_data]$ dd if=/dev/zero of=/xfs_data/file1 bs=10M count=6       #使用漏斗命令给file1文件输入大于50Mb
18. dd: 写入"/xfs_data/file1" 出错: 超出磁盘限额
19. 记录了6+0 的读入
20. 记录了5+0 的写出
21. 52428800字节(52 MB)已复制,0.122502 秒,428 MB/秒
22. [user1@localhost xfs_data]$ ll -h file1                 #查看大小限制
23. -rw-rw-r--. 1 user1 user1 50M 3月   4 12:36 file1
24. [root@localhost ~]# edquota -u user1                    #该命令可以给user1修改配额
25. [root@localhost ~]# quotaoff /xfs_data/                 #关闭配额功能
26. [root@localhost ~]# quotaon /xfs_data/                  #开启配额功能
27. 注:
28. bsoft:软配额限制,限制30Mb警告但不强制
29. bhard:硬配额限制,限制最多为50Mb
30. isoft:文件数超过3个警告
31. ihard:文件数5个后不可在创建

不只可以给用户配额,也可以通过下面命令给组配额,原理与上面相同

[root@localhost ~]# xfs_quota -x -c 'limit -g bsoft:30M bhard:50M isoft:3 ihard:5 组名' 挂载目录

修复文件系统

xfs_repair /dev/sdb1

检测磁盘坏道

badblocks -sv /dev/sdb

重新挂载

mount -o remount /挂载点或设备名

xfs备份/还原

1. xfsdump -f 备份存放路径 /dev/sdb1
2. xfsrestore -f 备份路径的文件 /还原到那个目录

VDO

       Virtual Data Optimizer 通过数据去重、压缩的方式来优化存储空间,vdo最大的作用就是节省硬盘空间,可以做到1TB的硬盘,存放3TB的数据甚至更多。VDO靠的就是删除和压缩解压缩技术,去重就是把硬盘里相同的数据以前要存多份,现在会把多余的删掉,只留一份,压缩算法来节省空间。

(1) 安装

[root@localhost ~]# yum -y install vdo

(2) vdo 命令语法

1.     create              创建一个VDO卷及其关联索引使其可用。
2.     remove              删除一个或多个已停止的VDO卷和相关卷索引。
3.     modify              修改一个或所有VDO的配置参数卷。更改将在VDO下次运行时生效设备启动;已经运行的设备则不是受到影响。
4.     list                显示已启动VDO卷的列表。如果,所有指定它同时显示已启动和未启动卷。
5.     start               启动一个或多个已停止、激活的VDO卷相关的服务。
6.     status              以YAML格式报告VDO系统和卷状态。但是,这个命令不需要root特权如果没有,信息将是不完整的。
7.     stop                停止一个或多个正在运行的VDO卷和相关卷服务。
8.     activate            激活一个或多个VDO卷。激活卷可以使用“开始”命令启动。
9.     deactivate          使一个或多个VDO卷失效。停用不能通过“start”命令启动卷。停用当前正在运行的卷不会停止它。
10.     growLogical         增加VDO卷的逻辑大小。卷必须存在并且必须正在运行。
11.     growPhysical        增加VDO卷的物理大小。卷必须存在并且必须正在运行。

(3) vdo卷案例:把20G的磁盘创建一个60G大小的vdo卷

1. [root@localhost ~]# vdo create --name=vdo1 --device=/dev/sdf1 --vdoLogicalSize=60G
2. Creating VDO vdo1
3. Starting VDO vdo1
4. Starting compression on VDO vdo1
5. VDO instance 1 volume is ready at /dev/mapper/vdo1

(4) 查看vdo卷

1. [root@localhost ~]# vdo list
2. vdo1
3. [root@localhost ~]# lsblk /dev/sdf
4. NAME     MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
5. sdf        8:80   0  20G  0 disk 
6. └─sdf1     8:81   0  20G  0 part 
7.   └─vdo1 253:4    0  60G  0 vdo

(5) 格式化vdo卷

[root@localhost ~]# mkfs.xfs /dev/mapper/vdo1

(6) 查看vdo卷属性

1. [root@localhost ~]# vdostats --si
2. Device                    Size      Used Available Use% Space saving%
3. /dev/mapper/vdo1         21.5G      4.3G     17.2G  20%           99%
4. [root@localhost ~]# blkid /dev/mapper/vdo1
5. /dev/mapper/vdo1: UUID="bdf896be-8cf7-4881-b61b-73847a2e7e17" TYPE="xfs"

(7) 自动挂载

1. [root@localhost ~]# mkdir /vdo_data
2. [root@localhost ~]# mount /dev/mapper/vdo1 /vdo_data/
3. [root@localhost ~]# echo "/dev/mapper/vdo1    /vdo_data      xfs     x-systemd.requires=vdo.service  0 0" >> /etc/fstab

(8) 删除vdo卷

1. [root@localhost ~]# umount /vdo_data
2. [root@localhost ~]# vdo remove --name=vdo1
3. Removing VDO vdo1
4. Stopping VDO vdo1

stratis(centos8)

       便捷的使用精简置备(Thin Provisioning)、快照(Snapshots)、基于池(Pool-based)的管理和监控等高级存储功能;基于xfs文件系统格式,创建filesystem后不需要格式化

(1) 安装stratis

1. yum install -y stratisd stratis-cli
2. systemctl enable stratisd

(2) 创建pool池,大于1G

1. stratis pool create pool-one /dev/sda1
2. stratis pool list

(3) 向已经存在的pool池中添加块设备

stratis pool add-data pool-one /dev/sda2

(4) 同时将两块块设备添加到同一个pool池中

stratis pool create pool-two /dev/sda3 /dev/sda4

(5) 查看pool-one池和pool-two池中所使用的块设备

1. stratis blockdev list pool-one
2. stratis blockdev list pool-two

(6) 在pool-one池中创建filesystem(一次只能创建一个filesystem)

1. stratis filesystem create pool-one file-one
2. stratis filesystem list

(7) 挂载filesystem

1. mkdir /fsdir
2. mount /stratis/pool-one/file-one /fsdir/

(8) 永久挂载

1. blkid /stratis/pool-one/file-one
2. echo "UUID=deeb42ce-5715-42ca-b33a-fcbfece6dd0a     /fsdir   xfs   defaults    0 0" >> /etc/fstab

raid

磁盘阵列(Redundant Arrays of Independent Disks)由独立磁盘构成的具有冗余能力的阵列。

Raid 0(条带): 读写速度得到提升,但不具备数据冗余,不推荐,最少2块硬盘

Raid 1(镜像): 写性能下降,读性能提升,相反冗余能力提升。但磁盘利用率是1/2,最少2块硬盘

Raid 1+0: 同组不能都坏掉,目前主流的方案。最少4块

Raid 0+1: 同组都可以坏,不能是不同组的相同标号。最少4块硬盘

Raid 0+1 和Raid1+0的空间利用率都是1/2

Raid 5(校验码机制):读写都提升,冗余有,空间利用率(n-1)/n 只能坏一块。最少3块硬盘

Raid 5+0:具有RAID 5和RAID 0的共同特性。它由两组以上RAID 5磁盘组成(每组最少3个)。

Raid 6 可以看做是raid5的升级版,它支持同时损坏2块磁盘。最少是4块盘

Raid 7 可以看做是raid5的升级版,它支持同时损坏3块磁盘。最少是5块盘

(1) 分区

1. echo "- - -" >> /sys/class/scsi_host/host0/scan
2. echo "- - -" >> /sys/class/scsi_host/host1/scan
3. echo "- - -" >> /sys/class/scsi_host/host2/scan 
4. fdisk -l
5. [root@localhost ~]# gdisk /dev/sdb          #分区为sdb1、sdb2
6. #文件分区类型选FD00,其他磁盘根据需求分区

(2)创建raid0,查看raid设备,挂载

1. [root@localhost ~]# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2}
2. mdadm: Defaulting to version 1.2 metadata
3. mdadm: array /dev/md0 started.
4. [root@localhost ~]# cat /proc/mdstat 
5. Personalities : [raid0] 
6. md0 : active raid0 sdb2[1] sdb1[0]
7.       20950528 blocks super 1.2 512k chunks
8.      
9. unused devices: <none>
10. [root@localhost ~]# mdadm -D /dev/md0       #查看raid0详细信息
11. #省略部分内容 
12. [root@localhost ~]# mkfs.xfs /dev/md0       #格式化为xfs格式
13. #省略部分内容
14. [root@localhost ~]# mkdir /raid0
15. [root@localhost ~]# mount /dev/md0 /raid0/
16. [root@localhost ~]# echo "/dev/md0 /raid0 xfs default 0 0" >> /etc/fstab

(3) 创建raid1

1. [root@localhost ~]# mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdc /dev/sdd
2. #省略部分内容
3. [root@localhost ~]# mdadm -D /dev/md1
4. #省略部分内容
5. [root@localhost ~]# mkfs.xfs /dev/md1
6. meta-data=/dev/md1               isize=512    agcount=4, agsize=1309632 blks
7.          =                       sectsz=512   attr=2, projid32bit=1
8.          =                       crc=1        finobt=0, sparse=0
9. data     =                       bsize=4096   blocks=5238528, imaxpct=25
10.          =                       sunit=0      swidth=0 blks
11. naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
12. log      =internal log           bsize=4096   blocks=2560, version=2
13.          =                       sectsz=512   sunit=0 blks, lazy-count=1
14. realtime =none                   extsz=4096   blocks=0, rtextents=0
15. [root@localhost ~]# mkdir /backup
16. [root@localhost ~]# mount /dev/md1 /backup
17. [root@localhost ~]# echo "/dev/md1 /backup xfs defaults 0 0" >> /etc/fstab
18. [root@localhost ~]# mdadm /dev/md1 -f /dev/sdc          #模拟损坏
19. mdadm: set /dev/sdc faulty in /dev/md1
20. [root@localhost ~]# mdadm /dev/md1 -r /dev/sdc          #物理拔出
21. mdadm: hot removed /dev/sdc from /dev/md1
22. [root@localhost ~]# mdadm -D /dev/md1                   #查看信息确认已经拔出
23. #省略部分内容
24. [root@localhost ~]# mdadm /dev/md1 -a /dev/sde          #添加新盘
25. mdadm: added /dev/sde
26. [root@localhost ~]# umount /dev/md1                     #卸载
27. [root@localhost ~]# mdadm -S /dev/md1                   #关闭md1
28. mdadm: stopped /dev/md1
29. [root@localhost ~]# mdadm -A /dev/md1                   #重启md1,结果会报错
30. mdadm: /dev/md1 not identified in config file.
31. [root@localhost ~]# mdadm -AR /dev/md1 /dev/sde         #从新声明md1磁盘成员
32. mdadm: /dev/md1 has been started with 1 drive (out of 2).
33. [root@localhost ~]# mdadm /dev/md1 -a /dev/sdc          #添加损坏盘
34. mdadm: added /dev/sdc
35. [root@localhost ~]# mdadm /dev/md1 -a /dev/sdf          #添加冗余盘
36. mdadm: added /dev/sdf
37. [root@localhost ~]# mdadm -S /dev/md1                   #关闭
38. mdadm: stopped /dev/md1
39. [root@localhost ~]# mdadm -A /dev/md1                   #启动
40. mdadm: /dev/md1 has been started with 2 drives and 1 spare.
41. 
42. umount /dev/md1                 #卸载
43. mdadm -S /dev/md1               #关闭md1
44. mdadm -A /dev/md1               #重启md1,报错(损坏盘)
45. 
46. mdadm -AR /dev/md1 /dev/sdb{3,4}    #从新声明md1磁盘成员
47. mdadm /dev/md1 -a /dev/sdb4     #添加损坏盘
48. mdadm /dev/md1 -a /dev/sdb5     #添加冗余盘
49. 
50. mdadm -D --scan > /etc/mdadm.conf   #扫描并添加raid信息到自启文件
51. mdadm -S /dev/md1               #重启测试
52. mdadm -A /dev/md1

(4) 创建raid5

       raid1创建命令与之相同,不过多叙述,创建命令如下

mdadm -Cv /dev/md5 -a yes -n 3 -l 5 -x 2  /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg

(5) 创建raid10

       raid1创建命令与之相同,不过多叙述,创建命令如下

mdadm -Cv /dev/md10 -a yes -n 4 -l 10 -x 1  /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3月前
|
Ubuntu Linux Shell
Linux系统中如何查看磁盘情况
【9月更文挑战第3天】在Linux系统中,有多种方式查看磁盘情况。可通过命令行工具`df`查看文件系统磁盘使用情况,选项`-h`以人类可读格式显示,`-T`显示文件系统类型;`du`命令显示目录或文件磁盘使用情况,`-h`以人类可读格式显示,`-s`仅显示总计;`fdisk -l`列出磁盘和分区信息。此外,图形界面的磁盘管理工具和文件管理器也可用于查看磁盘使用情况。这些方法有助于更好地管理磁盘空间。
612 4
|
4月前
|
存储 监控 安全
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
|
2月前
|
Unix Linux 对象存储
Linux 磁盘管理
Linux 磁盘管理
38 1
|
3月前
|
存储 Linux 5G
Linux 基于 LVM 逻辑卷的磁盘管理【简明教程】
这篇文章介绍了LVM(逻辑卷管理)如何提供灵活的磁盘管理方式,允许动态调整逻辑卷的大小而不会丢失数据。
Linux 基于 LVM 逻辑卷的磁盘管理【简明教程】
|
2月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控总结
Linux系统命令与网络,磁盘和日志监控总结
59 0
|
2月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控三
Linux系统命令与网络,磁盘和日志监控三
42 0
|
4月前
|
存储 监控 Linux
|
4月前
|
Prometheus 监控 Ubuntu
在Linux中,如何进行磁盘性能监控?
在Linux中,如何进行磁盘性能监控?
|
4月前
|
存储 监控 Linux
在Linux中,如何管理磁盘配额?
在Linux中,如何管理磁盘配额?
|
4月前
|
监控 Linux
在Linux中,如何监控磁盘I/O性能?
在Linux中,如何监控磁盘I/O性能?