【Linux进阶篇】磁盘及分区

news2024/11/15 12:46:31

目录

🍁文件系统

🍂虚拟机添加磁盘

🍂磁盘分区方式

🍂分区格式化

🍂挂载磁盘

🍁磁盘高级管理

🍂LVM:逻辑卷

🍃创建PV 物理卷

🍃创建VG 卷组

🍃创建LV 划分逻辑卷

🍃重新计算磁盘容量

🍂LVM案例

🍂添加磁盘配额功能

🍃ext4文件系统磁盘配额

🍃xfs文件系统磁盘配额

🍂VDO

🍂stratis(centos8)

🍂raid


  🦐博客主页:大虾好吃吗的博客

  🦐专栏地址: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的性能存储数据

虚拟机添加磁盘

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

echo "- - -" >> /sys/class/scsi_host/host0/scan
echo "- - -" >> /sys/class/scsi_host/host1/scan
echo "- - -" >> /sys/class/scsi_host/host2/scan 
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

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

挂载磁盘

1. 临时挂载

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

2. 永久挂载

[root@localhost ~]# vim /etc/fstab
/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 进行容量大小的调整

重新计算磁盘容量

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

resize2fs   卷名              #ext4文件系统
xfs_growfs  卷名              #xfs文件系统

LVM案例

创建卷组mailbox,逻辑卷mail

[root@localhost ~]# echo "- - -" >> /sys/class/scsi_host/host0/scan         #开机加入硬盘需要刷新
[root@localhost ~]# echo "- - -" >> /sys/class/scsi_host/host1/scan
[root@localhost ~]# echo "- - -" >> /sys/class/scsi_host/host2/scan 
[root@localhost ~]# fdisk -l
[root@localhost ~]# fdisk /dev/sdb                                      n-p-回车-回车-回车-w
[root@localhost ~]# fdisk /dev/sdc
[root@localhost ~]# fdisk /dev/sdd
[root@localhost ~]# fdisk -l                                            #查看三个硬盘是否添加成功
[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdc1                        #创建pv
  Physical volume "/dev/sdb1" successfully created. 
  Physical volume "/dev/sdc1" successfully created.
[root@localhost ~]# vgcreate -s 16m mailbox /dev/sdb1 /dev/sdc1         #创建vg卷组,-s指定PE大小
  Volume group "mailbox" successfully created
[root@localhost ~]# vgscan                                              #扫描卷组
  Reading volume groups from cache. 
  Found volume group "centos" using metadata type lvm2
  Found volume group "mailbox" using metadata type lvm2
  [root@localhost ~]# vgdisplay mailbox                                 #查看卷组状态
  --- Volume group ---
  VG Name               mailbox
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               <39.97 GiB
  PE Size               16.00 MiB
  Total PE              2558
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2558 / <39.97 GiB
  VG UUID               I9dvdd-VKKf-0Y0f-hxKo-Ivld-Ed4y-i9oFgR
[root@localhost ~]# lvcreate -n mail1 -L 10G mailbox                #创建lv逻辑卷,名称为mail1,大小为10G,从mailbox卷组拿
  Logical volume "mail1" created.
[root@localhost ~]# lvdisplay /dev/mailbox/mail1                    #查看逻辑卷状态
  --- Logical volume ---
  LV Path                /dev/mailbox/mail1
  LV Name                mail1
  VG Name                mailbox
  LV UUID                CahigK-NdHF-QubM-jBwM-TS3L-xgTf-20n3eg
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2023-03-04 10:43:49 +0800
  LV Status              available
  # open                 0
  LV Size                10.00 GiB
  Current LE             640
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
[root@localhost ~]# mkdir /mail1                                #创建挂载目录
[root@localhost ~]# mkfs.xfs /dev/mailbox/mail1                 #格式化磁盘为xfs格式
meta-data=/dev/mailbox/mail1     isize=512    agcount=4, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2621440, 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
[root@localhost ~]# mount /dev/mailbox/mail1 /mail1/            #挂载mail1
[root@localhost ~]# lvcreate -n mail2 -l 1000 mailbox           #创建lv逻辑卷mail2
  Logical volume "mail2" created.
[root@localhost ~]# lvdisplay /dev/mailbox/mail2                #查看逻辑卷mail2
  --- Logical volume ---
  LV Path                /dev/mailbox/mail2
  LV Name                mail2
  VG Name                mailbox
  LV UUID                ftxk6Y-Luwl-thVS-1tHH-6pTH-93sk-GTvznI
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2023-03-04 10:46:50 +0800
  LV Status              available
  # open                 0
  LV Size                15.62 GiB
  Current LE             1000
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3
[root@localhost ~]# mkdir /mail2                                #创建mail2挂载目录
[root@localhost ~]# mkfs.xfs /dev/mailbox/mail2                 #格式化mail2为xfs格式
meta-data=/dev/mailbox/mail2     isize=512    agcount=4, agsize=1024000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=4096000, 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
[root@localhost ~]# mount /dev/mailbox/mail2 /mail2             #挂载mail2
[root@localhost ~]# echo "/dev/mailbox/mail1  /mail1  xfs  defaults 0 0" >> /etc/fstab          #永久挂载
[root@localhost ~]# echo "/dev/mailbox/mail2  /mail2  xfs  defaults 0 0" >> /etc/fstab 
[root@localhost ~]# cat /etc/fstab              #查看刚才文件是否插入进去,下面省略部分内容
[root@localhost ~]# vgdisplay mailbox           #查看mailbox卷组还有多少G
#省略部分内容
[root@localhost ~]# lvextend -L 15G /dev/mailbox/mail1          #给mail1加到15G
  Size of logical volume mailbox/mail1 changed from 10.00 GiB (640 extents) to 15.00 GiB (960 extents).
  Logical volume mailbox/mail1 successfully resized.
[root@localhost ~]# xfs_growfs /dev/mailbox/mail1               #重新计算磁盘容量
meta-data=/dev/mapper/mailbox-mail1 isize=512    agcount=4, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 2621440 to 3932160 
[root@localhost ~]# lvextend -L 30G /dev/mailbox/mail1              #给mail1加30G发现保存,原因是vg容量不够,需要扩容
  Insufficient free space: 960 extents needed, but only 598 available
[root@localhost ~]# vgextend mailbox /dev/sdd1                      #把sdd1磁盘给mailbox卷组
  Physical volume "/dev/sdd1" successfully created.
  Volume group "mailbox" successfully extended
[root@localhost ~]# vgdisplay mailbox                               #查看卷组是否为3个pv且磁盘容量正确
  --- Volume group ---
  VG Name               mailbox
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               59.95 GiB
  PE Size               16.00 MiB
  Total PE              3837
  Alloc PE / Size       1960 / 30.62 GiB
  Free  PE / Size       1877 / <29.33 GiB
  VG UUID               I9dvdd-VKKf-0Y0f-hxKo-Ivld-Ed4y-i9oFgR
[root@localhost ~]# lvextend -L 30G /dev/mailbox/mail1              #扩充mail1到30G
  Size of logical volume mailbox/mail1 changed from 15.00 GiB (960 extents) to 30.00 GiB (1920 extents).
  Logical volume mailbox/mail1 successfully resized.
[root@localhost ~]# xfs_growfs /dev/mailbox/mail1                   #重新计算磁盘容量
meta-data=/dev/mapper/mailbox-mail1 isize=512    agcount=6, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=3932160, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 3932160 to 7864320
[root@localhost ~]# df -hT                                  #查看磁盘大小
文件系统                  类型      容量  已用  可用 已用% 挂载点
devtmpfs                  devtmpfs  470M     0  470M    0% /dev
tmpfs                     tmpfs     487M     0  487M    0% /dev/shm
tmpfs                     tmpfs     487M  9.3M  477M    2% /run
tmpfs                     tmpfs     487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root   xfs        17G  7.3G  9.8G   43% /
/dev/sda1                 xfs      1014M  173M  842M   18% /boot
tmpfs                     tmpfs      98M   56K   98M    1% /run/user/0
/dev/mapper/mailbox-mail1 xfs        30G   33M   30G    1% /mail1
/dev/mapper/mailbox-mail2 xfs        16G   33M   16G    1% /mail2
[root@localhost ~]# lvextend -L +4G /dev/mailbox/mail2          #给mail2逻辑卷加4G
  Size of logical volume mailbox/mail2 changed from 15.62 GiB (1000 extents) to 19.62 GiB (1256 extents).
  Logical volume mailbox/mail2 successfully resized.  
[root@localhost ~]# xfs_growfs /dev/mailbox/mail2  

添加磁盘配额功能

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

mount -o usrquota,grpquota /挂载盘 /挂载点
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

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

xfs文件系统磁盘配额

  1. 创建用户 user1

  2. 创建挂载目录

  3. 编辑用户配额(也可以给组配额)

  4. 给挂载目录其他人权限

  5. 切换用户验证配额的效果

  6. 可以使用edquota -u 用户名 修改用户的磁盘配额

  7. 开启配额功能 quotaon /data 关闭配额功能: qutoaoff /data

[root@localhost ~]# useradd user1                       #创建用户
[root@localhost ~]# mkdir /xfs_data                     #创建挂载目录
[root@localhost ~]# mount -o usrquota,grpquota /dev/mailbox/mail2 /xfs_data/                                #挂载并启用配额
[root@localhost ~]# xfs_quota -x -c 'limit -u bsoft:30M bhard:50M isoft:3 ihard:5 user1' /xfs_data/         #编辑用户配额
[root@localhost ~]# chmod 777 /xfs_data/                #赋予权限
#切换用户验证
[root@localhost ~]# su - user1                          #切换user1用户
[user1@localhost ~]$ cd /xfs_data/                      #进入挂载目录
[user1@localhost xfs_data]$ touch file{1..10}           #创建file1到10,最多可以创建5个
touch: 无法创建"file6": 超出磁盘限额
touch: 无法创建"file7": 超出磁盘限额
touch: 无法创建"file8": 超出磁盘限额
touch: 无法创建"file9": 超出磁盘限额
touch: 无法创建"file10": 超出磁盘限额
[user1@localhost xfs_data]$ ls                          #查看数量限制
file1  file2  file3  file4  file5
[user1@localhost xfs_data]$ dd if=/dev/zero of=/xfs_data/file1 bs=10M count=6       #使用漏斗命令给file1文件输入大于50Mb
dd: 写入"/xfs_data/file1" 出错: 超出磁盘限额
记录了6+0 的读入
记录了5+0 的写出
52428800字节(52 MB)已复制,0.122502 秒,428 MB/秒
[user1@localhost xfs_data]$ ll -h file1                 #查看大小限制
-rw-rw-r--. 1 user1 user1 50M 3月   4 12:36 file1
[root@localhost ~]# edquota -u user1                    #该命令可以给user1修改配额
[root@localhost ~]# quotaoff /xfs_data/                 #关闭配额功能
[root@localhost ~]# quotaon /xfs_data/                  #开启配额功能
注:
bsoft:软配额限制,限制30Mb警告但不强制
bhard:硬配额限制,限制最多为50Mb
isoft:文件数超过3个警告
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备份/还原

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

VDO

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

(1) 安装

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

(2) vdo 命令语法

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

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

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

(4) 查看vdo卷

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

(5) 格式化vdo卷

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

(6) 查看vdo卷属性

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

(7) 自动挂载

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

(8) 删除vdo卷

[root@localhost ~]# umount /vdo_data
[root@localhost ~]# vdo remove --name=vdo1
Removing VDO vdo1
Stopping VDO vdo1

stratis(centos8)

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

(1) 安装stratis

yum install -y stratisd stratis-cli
systemctl enable stratisd

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

stratis pool create pool-one /dev/sda1
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池中所使用的块设备

stratis blockdev list pool-one
stratis blockdev list pool-two

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

stratis filesystem create pool-one file-one
stratis filesystem list

(7) 挂载filesystem

mkdir /fsdir
mount /stratis/pool-one/file-one /fsdir/

(8) 永久挂载

blkid /stratis/pool-one/file-one
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) 分区

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

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

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

(3) 创建raid1

[root@localhost ~]# mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdc /dev/sdd
#省略部分内容
[root@localhost ~]# mdadm -D /dev/md1
#省略部分内容
[root@localhost ~]# mkfs.xfs /dev/md1
meta-data=/dev/md1               isize=512    agcount=4, agsize=1309632 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5238528, 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
[root@localhost ~]# mkdir /backup
[root@localhost ~]# mount /dev/md1 /backup
[root@localhost ~]# echo "/dev/md1 /backup xfs defaults 0 0" >> /etc/fstab
[root@localhost ~]# mdadm /dev/md1 -f /dev/sdc          #模拟损坏
mdadm: set /dev/sdc faulty in /dev/md1
[root@localhost ~]# mdadm /dev/md1 -r /dev/sdc          #物理拔出
mdadm: hot removed /dev/sdc from /dev/md1
[root@localhost ~]# mdadm -D /dev/md1                   #查看信息确认已经拔出
#省略部分内容
[root@localhost ~]# mdadm /dev/md1 -a /dev/sde          #添加新盘
mdadm: added /dev/sde
[root@localhost ~]# umount /dev/md1                     #卸载
[root@localhost ~]# mdadm -S /dev/md1                   #关闭md1
mdadm: stopped /dev/md1
[root@localhost ~]# mdadm -A /dev/md1                   #重启md1,结果会报错
mdadm: /dev/md1 not identified in config file.
[root@localhost ~]# mdadm -AR /dev/md1 /dev/sde         #从新声明md1磁盘成员
mdadm: /dev/md1 has been started with 1 drive (out of 2).
[root@localhost ~]# mdadm /dev/md1 -a /dev/sdc          #添加损坏盘
mdadm: added /dev/sdc
[root@localhost ~]# mdadm /dev/md1 -a /dev/sdf          #添加冗余盘
mdadm: added /dev/sdf
[root@localhost ~]# mdadm -S /dev/md1                   #关闭
mdadm: stopped /dev/md1
[root@localhost ~]# mdadm -A /dev/md1                   #启动
mdadm: /dev/md1 has been started with 2 drives and 1 spare.
​
umount /dev/md1                 #卸载
mdadm -S /dev/md1               #关闭md1
mdadm -A /dev/md1               #重启md1,报错(损坏盘)
​
mdadm -AR /dev/md1 /dev/sdb{3,4}    #从新声明md1磁盘成员
mdadm /dev/md1 -a /dev/sdb4     #添加损坏盘
mdadm /dev/md1 -a /dev/sdb5     #添加冗余盘
​
mdadm -D --scan > /etc/mdadm.conf   #扫描并添加raid信息到自启文件
mdadm -S /dev/md1               #重启测试
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 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/431634.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

说说你对 Webpack 的理解?解决了什么问题?

1、对webpack的理解 简单来说&#xff0c;webpack 是一个用于现代JavaScript应用程序的静态模块打包工具。 当 webpack处理应用程序时&#xff0c;它会在内部构建一个依赖图&#xff0c;此依赖图对应映射到项目所需的每个模块&#xff08;不再局限js文件&#xff09;&#xf…

【数据结构与算法】 - 双向链表 - 详细实现思路及代码

目录 一、概述 二、双向链表 三、双向链表实现步骤  &#x1f4cc;3.1 C语言定义双向链表结点  &#x1f4cc;3.2 双向链表初始化  &#x1f4cc;3.3 双向链表插入数据  &#x1f4cc;3.4 双向链表删除数据  &#x1f4cc;3.5 双向链表查找数据  &#x1f4cc;3.6 双向链…

总线仿真与测试工具CANoe介绍(图文并茂)

1、什么是CANoe CANoe是德国Vector公司的一款用于开发、测试和分析单个ECU和整个ECU网络的综合性工具,包括软件和硬件。它在整个开发过程中为网络设计者、开发和测试工程师提供支持:从规划到系统级测试。由于其多种变体和功能能够对不同的项目提供支持,被全球OEM和供应商广…

USB 速度识别

文章目录USB 速度识别低速设备全速设备高速设备空闲状态低速 / 全速设备高速设备SE0SE1USB 速度识别 在 USB host 或者 hub 的每个下行端口&#xff08;downstream facing port&#xff09;的 D 和 D- 上分别接了一个 15KΩ 的下拉电阻到地&#xff0c;这样&#xff0c;当端口…

SpringBoot自动装配原理(附面试快速答法)

文章目录SpringBoot自动装配原理1. 从调用SpringApplication构造器方法开始2. 解析启动类4.按需装配4.1 分析dubbo自动装配5. 如果定义自己的starter6. 面试答法SpringBoot自动装配原理 之前面试被问到这个题目&#xff0c;只会答一些spi、AutoConfigration注解、Import之类的&…

《SQLi-Labs》01. Less 1~5

Less-1 ~ Less-5 前言Less-1知识点题解 Less-2题解 Less-3题解 Less-4题解 Less-5知识点题解 sqli。开启新坑。 前言 对于新手&#xff0c;为了更加直观的看到 sql 注入语句&#xff0c;可以在以下文件添加两句&#xff1a; echo $sql; # 将构造的 sql 语句进行输出 echo &qu…

Maven依赖冲突分析和解决

使用maven管理jar包依赖时&#xff0c;可能会出现jar包版本冲突&#xff0c;不同版本的api调用方式可能不同&#xff0c;会出现NoSuchMethodError和ClassNotFoundException问题&#xff0c;甚至编译不通过&#xff0c;如&#xff1a;在common-lang3 的3.8.1版本中MethodUtils::…

Python中的@cache巧妙用法

缓存是一种空间换时间的策略&#xff0c;缓存的设置可以提高计算机系统的性能&#xff0c;这篇文章主要介绍了Python中的cache巧妙用法,需要的朋友可以参考下 Python中的cache有什么妙用&#xff1f; 缓存是一种空间换时间的策略&#xff0c;缓存的设置可以提高计算机系统的性…

Spark 简介与原理

目录标题1 Spark 简介与原理1.1 Spark与Hadoop的区别1.2 Spark的应用场景1.3 Spark的作业运行流程1.4 Spark 2.X与Spark 1.X的区别1 Spark 简介与原理 Spark 是一个大规模数据处理的统一分析引擎。 具有迅速、通用、易用、支持多种资源管理器的特点。 Spark生态系统: Spark SQL…

双榜加冕!加速科技荣登2023准独角兽中国未来独角兽双榜单

4月10日至11日&#xff0c;由杭州市人民政府、民建浙江省委会、中国投资发展促进会主办的第7届万物生长大会在杭州国际博览中心隆重举行。会上&#xff0c;中国投资发展促进会创投专委会、杭州市创业投资协会联合微链共同发布2023杭州市独角兽&#xff08;准独角兽&#xff09;…

【高危】vm2 <3.9.16 沙箱逃逸漏洞(CVE-2023-29199)

漏洞描述 vm2 是一个基于 Node.js 的沙箱环境&#xff0c;可以使用列入白名单的 Node 内置模块运行不受信任的代码。 vm2 3.9.16之前版本中&#xff0c;由于transformer.js中transformer函数中异常处理逻辑不够完善&#xff0c;攻击者可通过制造异常绕过handleException()并造…

精通 TensorFlow 2.x 计算机视觉:第一部分

原文&#xff1a;Mastering Computer Vision with TensorFlow 2.x 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 深度学习 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 不要担心自己的形象&#xff0c;…

Downie 4 4.6.14 MAC上最新最好用的一款视频下载工具

Downie for Mac 简介 Downie是Mac下一个简单的下载管理器&#xff0c;可以让您快速将不同的视频网站上的视频下载并保存到电脑磁盘里然后使用您的默认媒体播放器观看它们。 Downie 4 下载 Downie 4 for Mac Downie 4 for Mac软件特点 支持许多站点 -当前支持1000多个不同的…

printf里的格式控制符

%p&#xff1a;打印地址(指针地址)&#xff0c;十六进制形式输出&#xff0c;有多少位输出多少位&#xff0c;取决于是32 or 64位系统&#xff0c;如果输出不够位宽&#xff0c;左边补0。 &#xff05;f用来输出实数&#xff0c;以小数形式输出&#xff0c;默认情况下保留小数点…

自动化测试工程师需要具备什么技能?

如果是初入门的学习者&#xff0c;不建议拿一本书从头学&#xff0c;很可能会被里边一些专业术语和不常用的技术带偏&#xff0c;不论在公司还是在其他岗位上自学测试&#xff0c;都可以用自己搭建好的项目来练手&#xff08;如果在公司有现成的项目更好&#xff09;&#xff0…

提取图像特征方法总结 是那种很传统的方法~

目录 写在前面 一、SIFT&#xff08;尺度不变特征变换&#xff09; 1.SIFT特征提取的实质 2.SIFT特征提取的方法 3.SIFT特征提取的优点 4.SIFT特征提取的缺点 5.SIFT特征提取可以解决的问题&#xff1a; 二、HOG&#xff08;方向梯度直方图&#xff09; 1.HOG特征提取…

30岁软件测试,目前已失业4个月,迷茫不知该怎么办?

本人14年一本毕业&#xff0c;但是人特别懒&#xff0c;不爱学习&#xff0c;专业不好&#xff0c;毕业前都没找到合适工作&#xff0c;直接去创业了&#xff0c;奶茶店&#xff0c;托管&#xff0c;都弄过&#xff0c;也干过销售&#xff0c;反正浑浑噩噩度过了两年&#xff0…

CTFHub | 文件头检查

0x00 前言 CTFHub 专注网络安全、信息安全、白帽子技术的在线学习&#xff0c;实训平台。提供优质的赛事及学习服务&#xff0c;拥有完善的题目环境及配套 writeup &#xff0c;降低 CTF 学习入门门槛&#xff0c;快速帮助选手成长&#xff0c;跟随主流比赛潮流。 0x01 题目描述…

关于运行时内存数据区的一些扩展概念

栈顶缓存技术&#xff08;Top-of-Stack Cashing&#xff09; 前面提过&#xff0c;基于栈式架构的虚拟机所使用的零地址指令更加紧凑&#xff0c;但完成一项操作的时候必然需要使用更多的入栈和出栈指令&#xff0c;这同时也就意味着将需要更多的指令分派(instruction dispatc…

跨平台科学应用程序:QtiPlot 1.X Crack

QtiPlot 是一个用于数据分析和可视化的跨平台科学应用程序。由于其多语言支持&#xff0c;QtiPlot 被积极用于世界各地学术机构的教学。许多研究科学家信任 QtiPlot 来分析他们的数据并发布他们的工作结果。来自各个科学领域和行业的数千名注册用户已经选择了 QtiPlot 来帮助他…