1.虚拟机添加磁盘
关机添加,自动识别 或 开机添加,命令识别: 扫描磁盘
echo "- - -" >> /sys/class/scsi_host/host0/scan echo "- - -" >> /sys/class/scsi_host/host1/scan echo "- - -" >> /sys/class/scsi_host/host2/scan fdisk -l
注: 必须分区 格式化
2.文件系统
操作系统用于明确存储设备(常见的是磁盘)或分区上的文件的方法和数据结构; 即在存储设备上组织文件的方法。
linux常见的文件系统:
EXT4是Linux系统下的日志文件系统,是EXT3文件系统的后继版本。
(1)Ext4的文件系统容量达到1EB,而文件容量则达到16TB
(2)理论上支持无限数量的子目录
(3)Ext4文件系统使用64位空间记录块数量和i-节点数量(相当于地址)
(4)Ext4的多块分配器支持一次调用分配多个数据块 scont 7之后xfs
xfs是一种非常优秀的日志文件系统,SGI公司设计的,被称为业界最先进的、最具可升级性的文件系统技术
(1)根据所记录的日志在很短的时间内迅速恢复磁盘文件内容
(2)采用优化算法,日志记录对整体文件操作影响非常小
(3)是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间
(4)能以接近裸设备I/O的性能存储数据
1、NFS:Network FileSystem,网络文件系统
透过网络,让不同的主机、不同的操作系统可以共享存储的服务。
NFS 在文件传送或信息传送过程中依赖于 RPC(Remote Procedure Call)协议,即远程过程调用,
NFS是一个文件存储系统,而 RPC 负责信息的传输
3.磁盘分区方式
MBR:主引导记录,支持4主或3主1扩展多逻辑,每分区最大2TB,兼容性好。
GPT:是GUID分区表(GUID Partition Table)的缩写; 含义为“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准。 自纠错能力强,一块磁盘上主分区数量不受(4个的)限制,支持大于18EB的总容量, 几乎没有上限,最大支持到128个分区,分区大小支持到256TB。
分区命令:
fdisk /dev/sdb
gdisk /dev/sdc
分区号码有区别:fdisk 82 gdisk 8200
p: 显示当前硬件的分区,包括没有保存的改动
n: 创建一个新的分区
d:删除一个分区
w: 保存并退出
q: 不保存退出
t: 修改分区类型(文件系统类型)
l: 显示所支持的所有类型
4.分区格式化
mkfs.ext4 /dev/sdb1 mkfs.xfs /dev/sdc1
5.挂载,永久挂载 挂载会覆盖本来的文件内容
1. mount 2. vim /etc/fstab
系统磁盘高级管理
1.LVM:逻辑卷,动态调整分区大小,扩展性好
1)创建PV pvcreate :将实体 partition 创建成为 PV ;
pvscan :搜寻目前系统里面任何具有 PV 的磁盘;
pvdisplay :显示出目前系统上面的 PV 状态;
pvremove :将 PV 属性移除,让该 partition 不具有 PV 属性
2)创建VG vgcreate :创建 VG 的 (-s :后面接 PE 的大小,默认4M)
vgscan :搜寻系统上面是否有 VG 存在?
vgdisplay :显示目前系统上面的 VG 状态;
vgextend :在 VG 内增加额外的 PV ;
vgreduce :在 VG 内移除 PV;
vgchange :设置 VG 是否启动 (active);
vgremove :删除一个 VG
3)创建LV lvcreate :创建 LV lvscan :查询系统上面的 LV ;
lvdisplay :显示系统上面的 LV 状态
lvextend :在 LV 里面增加容量!
xfs_growfs 同步磁盘(先内存扩展在磁盘扩展)
lvreduce :在 LV 里面减少容量;
lvremove :删除一个 LV lvresize :对 LV 进行容量大小的调整
例:创建卷组mailbox,逻辑卷mail
fdisk /dev/sdb fdisk /dev/sdc fdisk /dev/sdd fdisk -l pvcreate /dev/sdb1 /dev/sdc1 vgcreate -s 16m mailbox /dev/sdb1 /dev/sdc1 vgscan vgdisplay mailbox lvcreate -n mail1 -L 10G mailbox lvdisplay /dev/mailbox/mail1 mkdir /mail1 mkfs.xfs /dev/mailbox/mail1 mount /dev/mailbox/mail1 /mail1/ lvcreate -n mail2 -l 1000 mailbox lvdisplay /dev/mailbox/mail2 mkdir /mail2 mkfs.xfs /dev/mailbox/mail2 mount /dev/mailbox/mail2 /mail2 echo "/dev/mailbox/mail1 /mail1 xfs defaults 0 0" >> /etc/fstab echo "/dev/mailbox/mail2 /mail2 xfs defaults 0 0" >> /etc/fstab cat /etc/fstab vgdisplay mailbox lvextend -L 15G /dev/mailbox/mail1 xfs_growfs /dev/mailbox/mail1 lvextend -L 30G /dev/mailbox/mail1 xfs_growfs /dev/mailbox/mail1 vgextend mailbox /dev/sdd1 vgdisplay mailbox lvextend -L 30G /dev/mailbox/mail1 xfs_growfs /dev/mailbox/mail1 df -hT lvextend -L +4G /dev/mailbox/mail2 xfs_growfs /dev/mailbox/mail2
如果是ext4文件系统的 使用resize2fs命令
磁盘配额
umount /data mount -o usrquota(用户配额) grpquota(组配额) /dev/vg0/lv1 /data xfs_quota -x -c 'limit -u bsoft=20M bhard=40M isoft=6 ihard=8 test' /data vim
修改配置文件自行挂载开启配额
echo "/dev/vg0/lv1 /backup xfs defaults,usrquota,grpquota 0 0" >> /etc/fstab
-x:表示启动专家模式,再当前模式下以允许对配额系统进行修改的所有管理命令可用
-c:表示直接调用管理命令
-u:指定用户账号对象
-g:指定组账号对象
bsoft:设置磁盘容量的软件限制数值
bhard:设置磁盘容量的硬限制数值(最大的容量)b(磁盘 )
isoft:设置磁盘文件数的软限制数值
ihard:设置磁盘文件数的硬限制数值 i节点(地址))(创建一个文件或目录都会使用一个节点(地址))(创建一个文件或目录都会使用一个节点分配地址)
例:添加第二块磁盘,挂载到/jimi
xfsdump -f /opt/dump_sdb1 /dev/sdb1 #备份磁盘分区 xfsrestore -f /opt/dump_sdb1 /jimi #还原 xfsdump -I #查看所有备份记录
注意:脚本免交互命令
1. xfsdump -f /opt/dump_sdb2 /dev/sdb1 -L sdb1_opt_v1 -M sdb1 2. jiaohu
2.VDO: Virtual Data Optimizer 通过数据去重、压缩的方式来优化存储空间
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)创建一个8G大小的vdo卷
vdo create --name=vdoname --device=/dev/sde1 --vdoLogicalSize=8G
(4) 查看vdo卷
1. vdo list 2. lsblk /dev/sde
(5) 格式化vdo卷
mkfs.xfs /dev/mapper/vdoname
(6) 查看vdo卷属性
vdostats --si blkid /dev/mapper/vdoname
(7) 自动挂载
mkdir /vdodir echo "/dev/mapper/vdoname /vdodir xfs x-systemd.requires=vdo.service 0 0" >> /etc/fstab
(8) 删除vdo卷
umount /vdodir vdo remove --name=vdoname
stratis(centos8)
便捷的使用精简置备(Thin Provisioning)、快照(Snapshots)、基于池(Pool-based)的管理和监控等高级存储功能; 基于xfs文件系统格式,创建filesystem后不需要格式化
(1) 安装stratis
yum install -y stratisd stratis-cli 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池中所使用的块设备
stratis blockdev list pool-one 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) 永久挂载
blkid /stratis/pool-one/file-one echo "UUID=deeb42ce-5715-42ca-b33a-fcbfece6dd0a /fsdir xfs defaults 0 0" >> /etc/fstab
4.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块盘
-C, --create:创建一个新的阵列
-a, --auto{=no,yes,md,mdp,part,p}{NN}:(自动)
-l, --level=:设定 raid level.
-n, --raid-devices=:指定阵列中可用 device 数目,这个数目只能由 --grow 修改
-v, --verbose:显示细节
-D, --detail:打印一个或多个 md device 的详细信息
-x ,spare-devices= :指定初始阵列的富余device数目。热备盘
-S 关闭mdadm -S /dev/md0(关闭前先取消挂载)
(1) 分区
1. gdisk /dev/sdb 2. FD00
(2) 创建raid0,查看raid设备,挂载
mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2} cat /proc/mdstat mdadm -D /dev/md0 mkfs.xfs /dev/md0 mkdir /raid0 mount /dev/md0 /raid0 echo "/dev/md0 /raid0 xfs defaults 0 0" >> /etc/fstab
(3) 创建raid1
mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb{3,4} mdadm -D /dev/md1 mkfs.xfs /dev/md1 mkdir /raid1 mount /dev/md1 /raid1 echo "/dev/md1 /raid1 xfs defaults 0 0" >> /etc/fstab mdadm /dev/md1 -f /dev/sdb4 #模拟损坏 mdadm /dev/md1 -r /dev/sdb4 #物理拔除 mdadm /dev/md1 -a /dev/sdb5 #添加新盘
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
mdadm -Cv /dev/md5 -a yes -n 3 -l 5 -x 2 /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg
(5) 创建raid10
mdadm -Cv /dev/md10 -a yes -n 4 -l 10 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf