命令:存储管理

一:磁盘在系统中的命名

1.1 磁盘命名方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8taaEsI3-1617270204052)(D:\linux 总结笔记\图片\磁盘命名.png)]

1.2 磁盘分区分类

分区主要分为三类:主分区《--扩展分区《--逻辑分区  
# 扩展分区可以划分出无数个逻辑分区:
# 1、逻辑分区属于扩展分区,扩展分区属于主分区
# 2、主分区⼜叫做引导分区,是可以安装系统的分区

1.3 磁盘分区格式

目前常见的磁盘分区格式有两种,MBR 分区和 GPT 分区:
# MBR分区是主引导记录,最大支持2TB容量,在容量上面存在着极大的瓶颈。
# GPT分区是GUID分区表,它⽀持的磁盘容量⽐ MBR ⼤得多。这是⼀个正逐渐取代 MBR的新标准,它是由 UEFI 辅住⽽形成的,将来 UEFI ⽤于取代⽼旧的 BIOS,⽽ GPT 则取代⽼旧的MBR。

1.4 磁盘分区方案

在这里插入图片描述

1.5 磁盘分区工具

# 在磁盘分区前需在vmware主页添加一块硬盘
fdisk ⼯具⽤于 MBR 格式
gdisk ⼯具⽤于 GPT 格式
------------------------------------------------
mbr  -----> fdisk -------> 最多4个主分区 ------> 最大2T内存
gpt  -----> gdisk -------> 最多128个主分区 ----> 最少2T内存

1.6 查看命令

lsblk  # 查看当前系统硬盘
lsblk  /dev/sda  # 查看sda磁盘的情况
partprobe # 更新分区表
gdisk -l /dev/sdb   # 查看sdb磁盘的分区情况
fdisk -l /dev/sdb   # 查看sdb磁盘的分区情况
df      # 查看文件系统
df -h   # 查看文件系统带容量
df -T   # 查看文件系统带类型

二:MBR分区

2.1 fdisk创建分区

fdisk /dev/sdb  按提示操作
起始位置不要指定,分区要严丝合缝,上一个分区结尾连上下一个开始,直接回车
            m 查看帮助
			q 退出
			n 新建分区(p主分区 e扩展分区)
			p
			d 删除分区	#  删除⼀个已有的分区,保存退出后需要执⾏partprobe命令刷新⼀下分区表		
			w 保存
----------------------------------------------------------------------
以下是步骤和命令手册:
[root@egon ~]# fdisk /dev/sdb
欢迎使⽤ fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写⼊磁盘。
使⽤写⼊命令前请三思。
Device does not contain a recognized partition table
使⽤磁盘标识符 0x12c57921 创建新的 DOS 磁盘标签。
命令(输⼊ m 获取帮助):n
Partition type:
 p primary (0 primary, 0 extended, 4 free)
 e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使⽤默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039)+1G
分区 1 已设置为 Linux 类型,⼤⼩设为 1 GiB
命令(输⼊ m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区⼤⼩(逻辑/物理)512 字节 / 512 字节
I/O ⼤⼩(最⼩/最佳)512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x12c57921
 设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
命令(输⼊ m 获取帮助)# 重复上述步骤,创建四个1G的主分区
命令(输⼊ m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区⼤⼩(逻辑/物理)512 字节 / 512 字节
I/O ⼤⼩(最⼩/最佳)512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x12c57921
 设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 4196351 1048576 83 Linux
/dev/sdb3 4196352 6293503 1048576 83 Linux
/dev/sdb4 6293504 8390655 1048576 83 Linux
# 此时虽然空间够⽤,但已经⽆法继续创建新的了
命令(输⼊ m 获取帮助):
命令(输⼊ m 获取帮助):n
If you want to create more than four partitions, you must replace a
primary partition with an extended partition first.
命令(输⼊ m 获取帮助)# 删除主分区4,然后新建⼀个扩展分区,剩余空间都给他
命令(输⼊ m 获取帮助):d # 删除主分区4
分区号 (1-4,默认 4)4
分区 4 已删除
命令(输⼊ m 获取帮助):p # 查看
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区⼤⼩(逻辑/物理)512 字节 / 512 字节
I/O ⼤⼩(最⼩/最佳)512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x12c57921
 设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 4196351 1048576 83 Linux
/dev/sdb3 4196352 6293503 1048576 83 Linux
命令(输⼊ m 获取帮助):n # 新建扩展分区
Partition type:
 p primary (3 primary, 0 extended, 1 free)
 e extended
Select (default e): e # 选择创建扩展分区
已选择分区 4
起始 扇区 (6293504-41943039,默认为 6293504):
将使⽤默认值 6293504
Last 扇区, +扇区 or +size{K,M,G} (6293504-41943039,默认为 41943039)# 直接
回⻋,剩余空间都给它
将使⽤默认值 41943039
分区 4 已设置为 Extended 类型,⼤⼩设为 17 GiB
命令(输⼊ m 获取帮助):p # 查看
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区⼤⼩(逻辑/物理)512 字节 / 512 字节
I/O ⼤⼩(最⼩/最佳)512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x12c57921
 设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 4196351 1048576 83 Linux
/dev/sdb3 4196352 6293503 1048576 83 Linux
/dev/sdb4 6293504 41943039 17824768 5 Extended
命令(输⼊ m 获取帮助): w # 保存
# 可以查看⼀下
[root@egon ~]# lsblk /dev/sdb
...

fdisk工具分磁盘时的手册

[root@egon ~]# fdisk /dev/sdb
Command (m for help): m #输⼊m列出常⽤的命令
Command action
a toggle a bootable flag #切换分区启动标记
b edit bsd disklabel #编辑sdb磁盘标签
c toggle the dos compatibility flag #切换dos兼容模式
d delete a partition #删除分区
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 #创建新的Sun磁盘标签
t change a partitions system id #修改分区ID,可以通过l查看id
u change display/entry units #修改容量单位,磁柱或扇区
v verify the partition table #检验分区表
w write table to disk and exit #保存退出
x extra functionality (experts only) #拓展功能

三:格式化制作⽂件系统与挂载

3.1 mkfs.xfs格式化制作挂载

两种格式的制作都必须格式化制作挂载,此方式是临时的。

磁盘必须格式化制作⽂件系统,然后挂载才能使⽤,针对⼀块硬盘/dev/sdb 可以不分区,直接格式化制作⽂件系统。

ps:

centos7选择xfs格式作为默认⽂件系统,⽽且不再使⽤以前的ext,仍然⽀持ext4,xfs专为⼤数据 产⽣,每个单个⽂件系统最⼤可以⽀持8eb,单个⽂件可以⽀持16tb,不仅数据量⼤,⽽且扩展性⾼。 还可以通过xfsdump,xfsrestore来备份和恢复。

# 先格式化
[root@egon ~]# mkfs.xfs /dev/sdb # /dev/sdb整体就是⼀个分区
[root@localhost ~]# mkfs.xfs -f /dev/sdb1 # 强制重新格式化,需要加-f 
----------------------------------------------
也可以基于mbr或者gpt分区⽅式分区完毕后,针对某⼀个分区⽐如/dev/sdb1制作⽂件系统
[root@egon ~]# mkfs.xfs /dev/sdb1 1
# 同个挂载点可挂载其它磁盘
----------------------------------------------
# 再挂载/dev/sdb1为例演示
[root@egon ~]# mount /dev/sdb1 /opt/
卸载
umount /dev/sdb1 # 或者umount /opt
强制卸载
umount -l /dev/sdb1 # 或者umount -l /opt
---------------------------------------------
补充:磁盘挂载mount
-t 指定⽂件系统
-a 挂载/etc/fstab中配置的所有
[root@egon ~]# mount -t xfs /dev/sdb1 /db1
-------------------------------------------------
可以查看到⽂件系统的uuid并挂载
[root@egon ~]# blkid | grep sdb1
/dev/sdb1: UUID="10a939a8-d17c-4a0f-9a89-8066ac013855" TYPE="xfs"
[root@egon ~]# mount UUID="10a939a8-d17c-4a0f-9a89-8066ac013855" /opt
建议配置⽂件/etc/fstab⽤uuid
[root@egon ~]# tail -1 /etc/fstab # 编辑⽂件,新增⼀⾏
UUID="10a939a8-d17c-4a0f-9a89-8066ac013855" /opt xfs defaults 0 0 [root@egon ~]# mount -a [root@egon ~]# df # 查看挂载情况

3.2 开启开机自动挂载

⽅式⼀:编辑⽂件/etc/fstab
[root@egon ~]# sed -i '$a /dev/sdb1 /opt xfs defaults 0 0' /etc/fstab
[root@egon ~]# tail -1 /etc/fstab
/dev/sdb1 /opt xfs defaults 0 0
-----------------------------------------------------
⽅式⼆:将挂载命令写⼊⽂件/etc/rc.local
注意:centos7下/etc/rc.local⽂件⾥配置的开机启动项不执⾏的解决办法
[root@egon ~]# ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 713 21:08 /etc/rc.local -> rc.d/rc.local
[root@egon ~]# ll /etc/rc.d/rc.local # 没有执⾏权限,需要加上
-rw-r--r--. 1 root root 523 116 15:03 /etc/rc.d/rc.local
[root@egon ~]# chmod +x /etc/rc.d/rc.local

在这里插入图片描述

第五列:表示该挂载后的⽂件系统能否被dump备份命令作⽤

0 # 代表不做备份

1 # 代表每天进行备份操作

2 # 代表不定日期的进行备份操作

第六列:这⾥⽤来指定如何使⽤fsck来检查硬盘。

0 # 代表不检查

1 # 检查,挂载点为 / 的(即根分区)时候,必须在这⾥填写1,其他的都不能填写1。

2 # 检查 (当1级别检验完成之后进⾏2级别检验)

四:GPT分区

4.1 gdisk创建手册

新增⼀块2500G的盘,然后⽤GPT的⽅式格式化
# 需要安装命令 
[root@egon ~]# yum install gdisk -y
[root@egon ~]# gdisk /dev/sdc
Command (? for help): n     # 新建
Partition number (1-128, default 1): # 直接回⻋,默认分区号为1
First sector (34-5242879966, default = 2048) or {+-}size{KMGTP}: #直接回⻋,
使⽤默认的起始位置
Last sector (2048-5242879966, default = 5242879966) or {+-}size{KMGTP}:
+1G # 设定1G的空间
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): L # 列出所有⽂件系统
......会看到⼀系列⽂件系统信息,默认的8300编号代表Linux filesystem,⽤它就好
Hex code or GUID (L to show codes, Enter = 8300): # 直接回⻋⽤默认8300就好
Changed type of partition to 'Linux filesystem'
Command (? for help): p # 打印查看
......
Number Start (sector) End (sector) Size Code Name
 1 2048 2099199 1024.0 MiB 8300 Linux filesystem
Command (? for help): w # 保存
Final checks complete. About to write GPT data. THIS WILL OVERWRITE
EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y # 输⼊y保存
OK; writing new GUID partition table (GPT) to /dev/sdc.
The operation has completed successfully.
------------------------------------------------------------------------
翻译:
......
Command (? for help): m b back up GPT data to a file   #将GPT数据备份到⽂件中
c change a partition's name              #更改分区的名称'
d delete a partition                     #删除分区
i show detailed information on a partition #显示分区的详细信息
l list known partition types             #列出已知的分区类型
n add a new partition                    #添加⼀个新的分区
o create a new empty GUID partition table (GPT) #创建⼀个新的空GUID分区表(GPT)
p print the partition table              #打印分区表
q quit without saving changes            #没有保存更改就退出
r recovery and transformation options (experts only) #恢复和转换选项(仅限专家使⽤) 
s sort partitions                        #年代分类分区
t change a partition's type code         #不要更改分区的类型代码
v verify disk                            #验证磁盘
w write table to disk and exit           #将表写⼊磁盘并退出
x extra functionality (experts only)     #额外功能(仅限专家使⽤) 
? print this menu                        #打印菜单

五:swap分区

free -m   # 查看swap分区信息
swapon -s # 查看所有swap分区

5.1 制作swap分区

# 创建一个新的分区 
fdisk /dev/sdb   # 分出⼀个1G的硬盘空间
mkswap /dev/sdb1 # 格式化为swap
# 激活swap分区
swapon /dev/sdb1 # 激活
swapoff -a       # 关闭swap分区,关闭具体某⼀个⽤swapon /dev/sdb1
# 开机⾃动挂载新增的swap分区
[root@localhost ~]# blkid | grep /dev/sdb1
/dev/sdb1: UUID="91d30c2d-2b43-40b1-b2b5-6f828c585f97" TYPE="swap"
PARTUUID="d3b7649d-54aa-45eb-8bef-dccfe6915413"
[root@localhost ~]# vim /etc/fstab
[root@localhost ~]# tail -1 /etc/fstab
UUID="91d30c2d-2b43-40b1-b2b5-6f828c585f97" swap swap defaults 0 0
或者/dev/sdb3  swap  swap  defaults 0  0

六:dd命令拷贝

# 用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
# 此处仅拷贝
dd if=/dev/zero of=/dev/sdb bs=500M count=1 
 
if : 从哪里读文件
of : 写入到哪里
bs : 写入500M
count : 写一块

七:文件系统的修复与备份

7.1 模拟系统文件出问题

在Linux系统中,为了增加系统性能,通常系统会将⼀些数据写先放在内存中,并不会直接将数据写⼊硬 盘,这是因为内存速度要⽐硬盘快若⼲倍。但是有个问题,万⼀公司服务器突然断电或者其他未知原因,再次启动后,会造成⽂件系统错误:“emergency mode” 等报错信息。。。

# 模拟文件系统出问题
1、直接向硬盘中写数据,不能测试向分区写数据
2、卸载之后重新挂载
[root@localhost ~]# mount /dev/sdc1 /root/test
mount: mount /dev/sdc1 on /root/test failed: Structure needs cleaning
-----------------------------------------
# 对文件进行修复
xfs_repair [磁盘或分区路径]
# 只检查不修复
xfs_repair -n /dev/sdb2   # 检查⽂件系统是否损坏,如何损坏会列出将要执⾏的操作
注: xfs_repair修改硬盘之后,硬盘数据丢失,所以对重要的数据要进行数据备份  
-----------------------------------------
# 如果是⽇志和数据不⼀致了,xfs 默认会在挂载的时候修复这种不⼀致,操作系统给出的建议是以读写的⽅式挂载并⾃动修复,可以尝试以只读不修复⽅式挂载⽂件系统。
mount -o ro,norecovery /dev/sdb2 /opt

7.2 xfs文件的备份和恢复

理解备份和恢复
备份:另外在保存一份
恢复:将以前保存的数据进行还原
例:
touch 1.txt
echo aaaa > 1.txt
cp  1.txt   2.txt
rm 1.txt
cp 2.txt 1.txt
备份类型
全量备份和增量备份
全量备份:将需要备份的文件全部复制一份
增量备份:在原来备份基础上,把新增数据重新备份一份
备份与恢复的命令
xfsdump : 备份的命令
xfsrestore  : 恢复的命令
格式化文件备份步骤
# 安装备份命令
yum install xfsdump -y
# 备份的等级
0  全量备份
1 ~ 9 增量备份(不同阶段备份的标记不同)
# 备份的参数
-L :记录每次备份的地方
-M :注释,此次备份的注释
-l :指定备份的等级
-f :备份的文件名称
-I :查看备份信息
# 备份的条件(限制)
1、必须使用root权限
2、只能备份已经挂载的内容 
3、只能备份xfs文件系统
4、只能够用xfsrestore来恢复
# 文件备份的命令格式
xfsdump [参数] 备份路径     # 切记“备份的源路径”末尾不要加左斜杠/
xfsdump -L sdb1_bak -M "sbd1_from_xxx" -l 0 -f sdb1_from_bak_1 /root/oldboy
# 数据恢复和参数
xfsrestore [参数] 恢复的路径
xfsrestore -f /root/sdb1_from_bak_3 /root/oldboy/
-f : 指定备份的文件路径
-------------------------------------------------------------
先做全量备份,再做增量备份,先恢复全量备份,再依次恢复增量。

八:lvm动态扩容

8.1 什么是lvm

逻辑卷管理LVM是硬盘的⼀个系统⼯具。⽆论在Linux或者其他类似的系统,都是⾮常的好⽤。传统分区使⽤固定⼤⼩区,重新调整⼤⼩⼗分麻烦。但是,LVM可以创建和管理“辑”卷⽽不是直接使⽤物理硬盘。可以让管理员弹性的管理逻辑卷的扩⼤缩⼩,操作简单,⽽不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。LVM并不需要重启就可以让内核知道分区的存在。
# 通过 LVM 技术,可以屏蔽掉磁盘分区的底层差异,在逻辑上给⽂件系统提供了⼀个卷的概念,然后在这些卷上建⽴相应的⽂件系统。下⾯是 LVM 中主要涉及的⼀些概念。

在这里插入图片描述

在这里插入图片描述

名词咧咧

物理卷(PV):(physical volume),把常规的磁盘设备通过pvcreate命令对其进⾏初始化,形成了物理卷。其实就是硬盘或分区。(⾯粉)
卷组(VG):(volume group),把多个物理卷组成⼀个逻辑的整体,这样卷组的⼤⼩就是多个硬盘之和。或者理解就是由⼀个或多个PV组成的整体。(⾯团)
逻辑卷(LV):(logical volume),从卷组中划分需要的空间⼤⼩出来。⽤户仅需对其格式化然后即可挂载使⽤。从VG中切割出的空间⽤于创建⽂件系统。(切成馒头)
基本单元(PE)(physical extend),分配的逻辑⼤⼩的最⼩单元,默认为4MB的基本块。(假设分配100MB逻辑空间,则需要创建25个PE)

8.2 lvm的优缺点

LVM的优点:
	1、可以动态扩容与缩容
	2、可以将新增加的硬盘添加到VG存储池
	3、可以突破物理存储卷的限制
缺点:
    1、因为加⼊了额外的操作,存取性能受到影响。
    2、当卷组中的⼀个磁盘损坏时,整个卷组都会受到响。 # 解释:LVM如果有⼀个磁盘损坏,整个lvm都坏了,lvm只有动态扩展作⽤,
# ⽅案:底层⽤RAID + 上层LVM = 既有冗余⼜有动态扩展 

8.3 lvm的制作

# 可以对分区做、也可以对整块盘做
1、安装lvm软件包
		yum install lvm2 -y
2、将磁盘交给pv
		pvcreate [磁盘|磁盘分区]
# pvcreate /dev/sdb1 # 对分区做/整块
3、查看pv  # 刷新partprobe
		pvs
		pvscan
4、创建vg
		vgcreate [vg名称] [pv路径]
# vgcreate vg1 /dev/sdb1 /dev/sdc 含/dev/sdb1与/dev/sdc两个pv 
5、查看vg
		vgs
6、创建lvm逻辑卷(lv)
		-L : 创建逻辑卷的大小
		-n : 逻辑卷的名字
		lvcreate [参数] 逻辑卷名称
# lvcreate -L 100M -n lv1_from_vg1 vg1
7、制作文件系统
		mkfs.xfs /dev/vg1/xxx
# mkfs.xfs /dev/vg1/lv1_from_vg1	
8、挂载文件系统
		mount [lv的路径] [挂载点的路径]
# mkfs.xfs /dev/vg2/lv1_from_vg2    

8.3 动态扩容

1、增加一块硬盘

2、创建pv
	pvcreate  /dev/sdd

3、直接扩容给VG
	vgextend [vg的名称] [pv]

4、扩容给LV
	lvextend -L [+100G] [lv路径]

5、刷新
	xfs_growfs /dev/vg1/vg1_test01

8.4 动态缩容

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

8.5 创建快照

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)

快照恢复相当于重新挂载,优点是占用空间小。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值