linux 分区
添加文件分区
lsblk # 以树形列出所有的块设备 fdisk -l [/dev/sdb] # 查看指定磁盘分区信息,不加参数显示所有磁盘的分区信息 fdisk /dev/sdb # 给指定磁盘分区参数,输入命令之后进入交互式操作 partprobe /dev/sdb # 内核重新读取分区表,参数是整个磁盘sdb,不需要重启,告知系统改变分区信息 mkfs -t xfs /dev/sdb1 # 分区之后格式化 mount /dev/sdb1 /mnt/sdb1 # 格式化之后挂载使用,挂载点需要提前创建 vi /etc/fstab # 挂载之后不是永久的,如果要永久生效需要修改配置文件
添加swap分区
mkswap /dev/sdb2 # fdisk分区之后格式化为swap分区 blkid /dev/sdb2 # 查看分区类型,检验是否格式化成功 swapon /dev/sdb2 # 挂载刚才格式化的swap分区,重启会失效,开机挂载请修改/etc/fstab文件,之后swapon -a swapon -s # 查看交换分区 swapoff /dev/sdb2 # 卸载swap分区 man swapon # 查看swapon用法
dd命令经常用来模拟大文件,可以利用dd生成的大文件格式化挂载成swap分区
dd if=/dev/zero of=/dev/sdb5 bs=1M count=1024 # /dev/zero 是系统中的特殊设备,一般用来模拟大文件,可以往文件中源源不断的写二进制bit # /dev/null 空设备,类似黑洞,一些垃圾文件可以往里边输出 # 生成的文件如果在/dev下挂载swap分区可能会报错,所以换了一个路径 dd if=/dev/zero of=/swapfile bs=1M count=1024 mkswap /swapfile # 提示 swapon: /swapfile:swapon 失败: 设备或资源忙,先swapoff,再swapon swapoff /swapfile swapon /swapfile
GPT分区
当硬盘容量大于2T,就要使用GPT分区表分区,相比于最多划分4个主分区的MBR,GPT可以划分128个主分区
将硬盘划分为GPT分区表的工具是gdisk和parted,推荐使用gdisk,与fdisk使用方法基本一致
LVM
HD:硬盘设备
PV:物理卷,一般是由硬盘分区获得
VG:卷组,由多个物理卷组成。容量等于所有物理卷之和。一个LVM系统中可以有一个或多个卷组
LV:逻辑卷,建立在卷组之上。供用户使用的逻辑设备,可以挂载使用
实验测试:虚拟机新添加两块20G硬盘,每块硬盘分区出10G作为物理卷,组成卷组,卷组分出15G作为逻辑卷,格式化并挂载使用
# 创建物理卷 [root@localhost ~]# pvcreate /dev/sdb1 /dev/sdc1 # 查看物理卷 [root@localhost ~]# pvs # 创建卷组,将物理卷加入卷组 [root@localhost ~]# vgcreate vg01 /dev/sdb1 /dev/sdc1 # 查看卷组信息 [root@localhost ~]# vgs vg01 # 查看详细的卷组信息 [root@localhost ~]# vgdisplay vg01 # 创建逻辑卷 [root@localhost ~]# lvcreate -n lv01 -L 15G vg01 [root@VM1 ~]# lvcreate -n octbackup -l 100%free vg01 -n: 逻辑卷命名 -L:逻辑卷容量 -l: 逻辑卷容量,可以按卷组的百分比分配 vg01: 逻辑卷来自哪个卷组 逻辑卷创建完成之后一般会在系统的/dev/vg01/lv01和/dev/mapper/vg01-lv01路径下 # 查看逻辑卷信息 [root@localhost ~]# lvdisplay /dev/mapper/vg01-lv01 # 格式化逻辑卷 [root@localhost ~]# mkfs -t xfs /dev/mapper/vg01-lv01 # 挂载 [root@localhost ~]# mount /dev/mapper/vg01-lv01 /mnt_test # 删除逻辑卷,删除时逻辑卷不能被使用,且删除逻辑卷数据丢失 [root@VM1 ~]# lvremove /dev/mapper/vg01-octbackup # 删除卷组 [root@VM1 ~]# vgremove vg01 # 删除物理卷 [root@VM1 ~]# pvremove /dev/sdb3
动态扩容
# 直接增加逻辑卷容量 [root@VM1 ~]# lvextend -L 23G /dev/mapper/centos_vm1-root # 23G 最终的大小 [root@VM1 ~]# lvextend -L +5G /dev/mapper/centos_vm1-root # +5G 增加的容量 # 如果卷组容量不足会报错,需要先增加卷组的容量 [root@VM1 ~]# vgextend centos_vm1 /dev/sdb1 # 没有物理卷去加硬盘制作物理卷 # 扩容之后,同步文件系统 [root@VM1 ~]# resize2fs /dev/mapper/centos_vm1-root # centos7动态扩容直接/分区的时候,直接 xfs_grewfs 加分区/ [root@VM1 ~]# xfs_growfs /
LVM条带化
把保存到逻辑卷的数据分成N等份,分别写到不同的物理卷,可以提高数据读写效率,但是其中的一个物理卷出现故障,数据会无法恢复。
# 挂载两块硬盘sdb和sdc组成逻辑卷,实现条带化 [root@localhost ~]# lsblk [root@localhost ~]# pvcreate /dev/sdb [root@localhost ~]# pvcreate /dev/sdc [root@localhost ~]# vgcreate vg01 /dev/sdb /dev/sdc # 创建实现条带化的逻辑卷 [root@localhost ~]# lvcreate -n lv01 -L 20G vg01 -i 2 /dev/sdb /dev/sdc -n 逻辑卷名字 -L 逻辑卷容量 -i 条带化的数量 sdb,sdc 条带化来自哪两个pv # 通过pvs,可以查看到20G的lv从每个pv拿了10G [root@localhost ~]# pvs [root@localhost ~]# mkfs -t xfs /dev/mapper/vg01-lv01 [root@localhost ~]# mkdir /test01 [root@localhost ~]# mount /dev/mapper/vg01-lv01 /test01/ # iostat 查看测试结果 [root@localhost ~]# yum install -y sysstat [root@localhost ~]# iostat -m -d /dev/sdb /dev/sdc 1 -m 以什么速度显示,每秒M -d 要查看的磁盘 1 每隔1s刷新一次,后边还有数据则代表共显示多少次 # 做写入数据测试,同时查看iostat状态 [root@localhost ~]# dd if=/dev/zero of=/test01/testfile bs=1M count=2048 Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn sdb 569.31 0.00 35.58 0 35 sdc 569.31 0.00 35.58 0 35
RAID
- raid0 至少两块盘,实现条带化,高性能读写。没有冗余,磁盘利用率100%
- raid1 至少两块盘,数据镜像备份,可靠性好。磁盘利用率50%
- raid5 至少3块盘,条带化,读写性能好,有冗余,磁盘利用率(n-1)/n,最常见的一种类型
- raid6 至少4块盘,条带化,读写性能好,采用双重校验保证数据安全,一般用于安全性要求高的场合
- raid10 raid1和raid0的组合,至少4块盘,两块硬盘为一组先做raid1,再将raid1的两组做raid0