存储是每个计算机的基本需求。RedHat Linux 提供了一些强大的工具,他们能在大量的场景中管理多种类型的存储设备
fdisk -l ##真实存在的设备
cat /proc/partitions ##系统识别的设备
blkid ##系统可使用的设备
df ##系统正在挂载的设备
/dev/xdx ##/dev/hd0 dev/hd1 /dev/sda /dev/sda1
/dev/sda2 /dev/sdb /dev/sdb1
/dev/sr0 ##光驱
/dev/mapper/* ###虚拟设备
mount 设备 挂载点
mount /dev/sdb1 /mnt ##挂载sdb1到mnt
umount /mnt ##卸载
mount -o ro /dev/sdb1 /mnt ##只读挂载(无法写入)
mount -o remount,rw /dev/sdb1 ##重新读写挂载
当有程序使用此设备时,无法直接卸载设备
方法1
fuser -kvm /mnt
umount /mnt
方法2
losf /mnt
kill -9 xxxxx
umount /mnt
硬盘0磁道1扇区的的512个字节中记录的信息如下
512=446 + 64 + 2
mbr(主引导记录) mpt(主分区标) 55aa(硬盘的有效性标示)
硬盘分区表
64
1个分区占用16个字节
一个硬盘最多可以划分4个主分区
其中最后一个为扩展分区,剩下的都会在扩展分区里,在扩展分区里划分逻辑分区
Command (m for help): m ---->查看帮助
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition --------------->新建
o create a new empty DOS partition table
p print the partition table-------->查看信息
q quit without saving changes-------->退出不保存
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit--------->保存
x extra functionality (experts only)
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)-------->主分区
e extended------------->扩展分区
Select (default p): p
Partition number (1-4, default 1): 1------->分区数
First sector (2048-20971519, default 2048): 2048-------------->分区开始位置
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +100M--------->分区大小
Partition 1 of type Linux and of size 100 MiB is set
Command (m for help): n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): e
Selected partition 4
First sector (616448-20971519, default 616448):
Using default value 616448
Last sector, +sectors or +size{K,M,G} (616448-20971519, default 20971519): --------->默认剩余的空间全给扩展分区
Using default value 20971519
Partition 4 of type Extended and of size 9.7 GiB is set
逻辑分区即在扩展分区内
Command (m for help): n
All primary partitions are in use
Adding logical partition 5
First sector (618496-20971519, default 618496):
Using default value 618496
Last sector, +sectors or +size{K,M,G} (618496-20971519, default 20971519): +500M
Partition 5 of type Linux and of size 500 MiB is set
Command (m for help): w-------->保存
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
保存后查看分区信息
[root@localhost ~]# cat /proc/partitions
major minor #blocks name
253 0 10485760 vda
253 1 10484142 vda1
253 16 10485760 vdb
253 17 102400 vdb1
253 18 102400 vdb2
253 19 102400 vdb3
253 20 1 vdb4------->此为扩展分区,只有1kb,只作为容器,无法使用
253 21 512000 vdb5
ext3 rhel5及之前的版本 最多支持32TB的文件系统和2T的文件,实际12TB文件系统,16G文件
ext4 rhel6 1EB 16TB
xfs rhel7 18EB 9eB 7G/s 4G/s
mkfs.xfs /dev/vdb1 ##格式化
mount /dev/vdb1 /mnt
vim /etc/fstab
设备 挂载点 文件系统 挂载参数 是否备份 是否检测
/dev/vdb1 /mnt xfs defaults 0 0
mount -a 开机即可自动挂载
1.mkswap /dev/vdb3
2.swapon -a /dev/vdb3
3.swapon -s
4.vim /etc/fstab
/dev/vdb3 swap swap defaults 0 0 ##即可开机自动挂载
1.vim /etc/fstab ##删掉自动挂载
2.swapoff /dev/vdb ##删除swap分区
3.swapon -s
配额是针对设备的
mkdir /pub
mkfs.xfs /dev/vdb6 ##格式化
mount /dev/vdb6 /pub
chmod 1777 /pub-------->挂载后再修改权限否则挂载后依然是原来的权限
umount /pub
mount -o usrquota /dev/vdb6 /pub-------->打开用户配额挂载
Disk quotas for user student (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/vdb6 0 0 20480 0 0 0
文件大小软限制 硬限制 文件个数 个数软限制 个数硬限制
su - student ##切换到student测试
截取文件测试
dd if=/dev/zero of=/pub/studentfile bs=1M count=3
dd if=/dev/zero of=/pub/studentfile bs=21M count=3
cryptsetup luksFormat /dev/vdb3---------> 加密(会覆盖原文件内容)
WARNING!
========
This will overwrite data on /dev/vdb3 irrevocably.
Are you sure? (Type uppercase yes): YES------->要用大写
Enter passphrase: ------->密码六位以上的字母和数字组合
Verify passphrase:
cryptsetup open /dev/vdb3 westos-------->打开锁(westos为这个锁的名字)
Enter passphrase for /dev/vdb3:------>输入密码
mkfs.xfs /dev/mapper/westos-------->格式化
mount /dev/mapper/westos /mnt------->挂载
touch /mnt/file{1…8}--------->建立文件
umount /mnt------->卸载
cryptsetup close westos------->关锁
此时即将vdb3相当于锁在了一个盒子里,只有重新输入密码打开锁方可重新挂载
1.vim /etc/fstab-------->开启自动挂载
/dev/mapper/westos /mnt xfs defaults 0 0
pv ##物理卷
被lv命令处理过的物理分区
vg ##物理卷组
被组装到一起的物理卷
pe ##图里扩展
lv设备的最小存储单元lvm是pe的整数倍
lvm ##逻辑卷
直接使用的设备,可以增大缩减并保持原有数据不变
1.分区时定分区标签为8e
2.打开监控命令
watch -n 1 "pvs;echo ===;vgs;echo ===;lvs;echo ===;df -h /mnt"
pvcreate /dev/vdb5 ##建立物理卷
pvcreate /dev/vdb6
vgcreate vg0 /dev/vdb5 ##建立物理卷组
vgextend vg0 /dev/vdb6
lvcreate -L 20M -n lv0 vg0 ##建立lvm
mkfs.xfs /dev/vg0/lv0 ##格式化为xfs文件系统
mount /dev/vg0/lv0 /mnt ##挂载
df -H /mnt ##查看lvm大小(H1000k为1M,h1024k为1M)
1.watch -n 1 "pvs;echo ===;vgs;echo ===;lvs;echo ===;df -h /mnt" ##打开监控
2.lvextend -L 800M /dev/vg0/lv0 ##lvm拉伸,总量不可超过vg0
3.xfs_growfs /dev/vg0/lv0 ##xfs文件系统的扩展
1.fdisk /dev/vdb ##建立新的分区
2.partprobe ##同步分区
3.pvcreate /dev/vdb7 ##添加物理卷
4.vgextend vg0 /dev/vdb7------->扩大物理卷组
5.lvextend -L 1400M /dev/vg0/lv0 ##拉伸到1500M
6.xfs_growfs /dev/vg0/lv0 ##扩展文件系统容量
xfs文件系统无法缩减
1.umount /mnt ##卸载/dev/vg0/lv0
2.mkfs.ext4 /dev/vg0/lv0 ##转换文件系统
3.e2fsck -f /dev/vg0/lv0 ##检测改设备是否安全
4.resize2fs /dev/vg0/lv0 1000M ##将文件系统缩减到1000M
5.mount /dev/vg0/lv0 /mnt ##重新挂载后查看
6.lvreduce -L 1000M /dev/vg0/lv0 ##将逻辑卷缩减到1000M
7.pvmove /dev/vdb7 /dev/vdb6 ##将物理卷7数据移入物理卷6
8.vgreduce vg0 /dev/vdb7 ##移出物理卷7
9.pvremove /dev/vdb7 ##删除物理卷7
lvcreate -L 50M -n /dev/vg0/lv0_snap -s /dev/vg0/lv0
示例
1. ls /mnt
2.touch /mnt/file{1..8}
3.ls /mnt
4.umount /mnt
5.ls /mnt
6.lvcreate -L 50M -n /dev/vg0/lv0_snap -s /dev/vg0/lv0 ##快照
7.mount /dev/vg0/lv0_snap /mnt ##挂载快照
8.ls /mnt
1.rm -fr /mnt/*
2.ls /mnt
3.umount /mnt
4.lvremove /dev/vg0/lv0_snap ##删除有问题的快照
5.lvcreate -L 50M -n /dev/vg0/lv0_snap -s /dev/vg0/lv0 ##重新建立快照
6.mount /dev/vg0/lv0_snap /mnt ##挂载新建的快照
7.ls /mnt
1.umount /mnt ##卸载
2.lvremove /dev/vg0/lv0_snap ##删除快照
3. lvremove /dev/vg0/lv0 ##删除逻辑卷
4.vgremove vg0 ##删除物理卷组
5.pvremove /dev/vdb5 ##删掉物理卷
6.pvremove /dev/vdb6
7.pvremove /dev/vdb7
8.fdisk /dev/vdb ##删除分区
9.fdisk -l