磁盘的基本结构
盘片
磁道
扇区 512B
柱面
磁头
分区主要分三类:主分区<-----扩展分区<-------逻辑分区
逻辑分区属于扩展分区,扩展分区属于主分区
MBR与GPT区别:MBR最大支持2TB,最大支持4个分区,GPT可以最多分128个分区
MBR ----->分区工具fdisk(最多可分4个分区,通常用于<2TB的磁盘空间)
GPT ------>分区工具gdisk(最多可分128个分区,通常用于>2TB的磁盘空间)
fdisk分区
命令:m 查看帮助
q 退出
n 新建分区(p主分区 e扩展分区)
p
w 保存
d 删除分区
l 查看分区
制作文件系统并挂载(暂时挂载)
mount 磁盘分区(源) 文件夹 #挂载
umount 文件夹 #卸载
mount -a 让/etc/fstab配置文件立即生效
mount -o 挂载选项的指定
使用文件系统的流程
1、装硬盘
2、查看当前系统硬盘
[root@localhost a]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 18G 0 lvm /
└─centos-swap 253:1 0 1G 0 lvm [SWAP]
sdb 8:16 0 40G 0 disk
sdc 8:32 0 3.9T 0 disk
sr0 11:0 1 4.3G 0 rom
3、分区
2TB 以下的硬盘,使用MBR分区
2TB 以上的硬盘,使用GPT分区
fdisk /dev/sdb
4、格式化分区(将分区做成文件系统)
mkfs.xfs /dev/sdb1
5、挂载分区
mount /dev/sdb1 /a
6、检测
df
-h : 显示硬盘大小单位
#注:挂载哪个硬盘则显示对应硬盘里面的内容
开机自动挂载
mkfs # 格式化分区
cat /etc/fstab #存放挂载的磁盘文件
fstab文件格式:
UUID 挂载点
查看UUID:blkid
partprobe #更新分区表
lsblk #查看所有硬盘下的分区
GPT的分区方式:
1、GPT和MBR之间的区别?
MBR分区格式支持2TB以下硬盘分区,GPT分区格式支持2TB以上硬盘分区。
2、准备一块2TB以上硬盘
#注:分2TB以上硬盘,fdisk可以使用但是不推荐。
3、GPT分区步骤
n : 创建一个新的分区
d : 删除一个分区
p : 查看分区列表
w : 保存分区
?: 查看帮助
4、格式化文件系统
mkfs.xfs /dev/sdc1
5、挂载目录
mount /dev/sdc /a
3、硬盘自动挂载
1、开机自动挂载
开机自动执行:/etc/rc.local
chmod +x /etc/ec.local
echo "mount /dev/sdc1 /root/test" >> /etc/rc.local
2、修改配置文件 /etc/fstab
/dev/sdc100 /opt xfs defaults 0 0
设备 挂载点 文件系统类型 挂载类型 是否备份 是否检测
UUID=1327e665-44b3-4223-a93b-69c36ec602f9 /root/oldboy xfs defaults 0 0
/dev/sdc100 等价于 UUID
3、查询设备UUID
[root@localhost ~]# blkid
/dev/sdc1: UUID=“b5797ad6-9b98-452c-8962-fa12f6590fa6” TYPE=“xfs” PARTLABEL=“Linux filesystem”
4、制作SWAP分区
1、创建一个硬盘分区
2、制作swap分区
mkswap /dev/sdb3
3、激活swap
swapon /dev/sdb3
4、关闭swap
swapoff
5、自动挂载
5.1、
echo “mkswap /dev/sdb3” >> /etc/rc.local
echo “swapon /dev/sdb3” >> /etc/rc.local
5.2、
echo “/dev/sdb3 swap swap defaults 0 0” >> /etc/fstab
5、修复服务器⽂件系统
1.dd命令(模拟服务器系统故障)
dd if=/dev/zero of=/dev/sdb bs=500M count=1
if : 从哪里读文件
of : 写入到哪里
bs : 写入500M
count : 写一块
2、模拟文件系统出问题
1、直接向硬盘中写数据,不能测试向分区写数据
2、卸载之后重新挂载
[root@localhost ~]# mount /dev/sdc1 /root/test
mount: mount /dev/sdc1 on /root/test failed: Structure needs cleaning
3、对文件系统进行修复
xfs_repair [磁盘或分区路径]
注: xfs_repair修改硬盘之后,硬盘数据丢失,所以对重要的数据要进行数据备份
3、文件系统的备份与恢复
备份:另外在保存一份
恢复:将以前保存的数据进行还原
touch 1.txt
echo aaaa > 1.txt
cp 1.txt 2.txt
rm 1.txt
cp 2.txt 1.txt
1.log 1T = 1024G
全量备份和增量备份
全量备份:将需要备份的文件全部复制一份
增量备份:在原来备份基础上,把新增数据重新备份一份
备份与恢复的命令
xfsdump : 备份的命令
xfsrestore : 恢复的命令
备份的步骤
1、安装备份命令
[root@localhost test]# yum install xfsdump -y
2、备份的等级
0 全量备份
1 ~ 9 增量备份(等级)
3、备份的参数
-L :记录每次备份的地方
-M :注释,此次备份的注释
-l :指定备份的等级
-f :备份的文件名称
-I :查看备份信息
4、备份的条件(限制)
1、必须使用root权限
2、只能备份已经挂载的内容
3、只能备份xfs文件系统
4、只能够用xfsrestore来恢复
5、备份的命令格式
xfsdump [参数] 备份路径
xfsdump -L sdb1_bak -M “sbd1_from_xxx” -l 0 -f sdb1_from_bak_1 /root/oldboy
6、数据恢复
xfsrestore
7、恢复数据的参数
-f : 指定备份的文件路径
8、恢复的格式
xfsrestore [参数] 恢复的路径
[root@localhost oldboy]# xfsrestore -f /root/sdb1_from_bak_3 /root/oldboy/
4、LVM
1、什么是lvm
你如何保证你的硬盘空间恰好够用?
如果你的硬盘你够用了怎么扩容?
LVM是文件系统管理工具
/root/oldboy —> lv[5G]
/root/oldboy —> lv[3G]
2、LVM的优点
1、可以动态扩容与缩容
2、可以将新增加的硬盘添加到VG存储池
3、可以突破物理存储卷的限制
3、使用lvm
1、安装lvm软件包
yum install lvm2 -y
2、将磁盘交给pv
pvreate [磁盘|磁盘分区]
3、查看pv
pvs
pvscan
4、创建vg
vgcreate [vg名称] [pv路径]
5、查看vg
6、创建lvm逻辑卷(lv)
-L : 创建逻辑卷的大小
-n : 逻辑卷的名字
lvcreate [参数] 逻辑卷名称
7、制作文件系统
mkfs.xfs /dev/vg1/xxx
8、挂载文件系统
mount [lv的路径] [挂载点的路径]
动态扩容
1、增加一块硬盘
2、创建pv
pvcreate /dev/sdd
3、直接扩容给VG
vgextend [vg的名称] [pv]
4、扩容给LV
lvextend -L [+100G] [lv路径]
5、刷新
xfs_growfs /dev/vg1/vg1_test01
动态缩容
1、卸载lv
[root@www ~]# umount /root/vg02
2、删除lv
[root@www ~]# lvremove /dev/vg1/vg1_test01
Do you really want to remove active logical volume vg1/vg1_test01? [y/n]: y
Logical volume "vg1_test01" successfully removed
3、删除vg
[root@www ~]# vgremove vg1
Volume group "vg1" successfully removed
4、删除PV
[root@www ~]# pvremove /dev/sdb1
Labels on physical volume "/dev/sdb1" successfully wiped.
[root@www ~]# pvremove /dev/sdc
Labels on physical volume "/dev/sdc" successfully wiped.
[root@www ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb2 vg2 lvm2 a-- <40.00g <40.00g
/dev/sdd vg2 lvm2 a-- <100.00g <100.00g
快照
1、挂载硬盘
2、创建PV
3、创建VG
4、创建LV
5、格式化文件系统
6、挂载
7、造数据
[root@www ~]# echo 111 >> /vg/1.txt
8、拍摄快照
[root@www ~]# lvcreate -L +1G -s -n vg_from_vg100_bak /dev/vg100/vg_from_vg100
Logical volume “vg_from_vg100_bak” created.
lvcreate -L [快照大小] -s(创建快照) -n [快照的名字] [拍摄快照的目标]
9、查看快照
[root@www ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Conver
vg_from_vg100 vg100 owi-aos— 1.00t
vg_from_vg100_bak vg100 swi-a-s— 1.00g vg_from_vg100 0.01
10、恢复数据
[root@www ~]# mount -o nouuid /dev/vg100/vg_from_vg100_bak /vg_bak
#备注:同一个UUID只能挂载一次,如果需要挂载多次,则需要使用(-o nouuid)
快照恢复相当于重新挂载,优点是占用空间小。
定时任务1
Crontab表达式
* * * * *
分 时 日 月 周
每天的凌晨2点 02:00 00 02 * * *
每月执行一次 00 00 01 * *
每个月的一号零点零时零分同时这一天时星期六 00 00 01 * 6
2、系统级别的计划任务
1、/etc/crontab
2、如下的目录
/etc/cron.hourly/ # 系统定时任务每个⼩时运⾏这个⽬录⾥的内容
/etc/cron.daily/ # 系统定时任务每天运⾏这个⽬录⾥的内容
/etc/cron.weekly/ # 系统定时任务每周运⾏这个⽬录⾥的内容
/etc/cron.monthly/ # 系统定时任务每⽉运⾏这个⽬录⾥的内容
3、用户级别的计划任务
crontab -e
-e : 编辑计划任务
-l : 查看计划任务
#注:用户级别的计划任务存放在/var/spool/cron/,不同的用户存放的计划任务是以其自己的名字命名的脚本
4、crontab语法
#1 3 5
00 00 1,3,5 * *
#1到5号
00 00 1-5
#每几分钟,每几个小数,每几天
0/2 /2
00 0/2 00 /2
00 00 0/2 00 00 /2