Linux~~~存储管理-磁盘-2020.11.25-26

存储管理

磁盘简介

磁盘/硬盘/disk是同一个东西,不同于内存的是容量比较大。

类型区分:(从工作原理分)

机械:机械硬盘是传统普通硬盘,主要由:盘片、磁头、盘片转轴及控制电机、磁头控制器、数据转换器、接口、缓存等几个部分组成。
在这里插入图片描述

固态:固态驱动器(Solid State Disk或Solid State Drive,简称SSD),俗称固态硬盘,固态硬盘是用固态电子储存芯片阵列制成的硬盘

固态硬盘较小,较轻、功耗低、读写速度高、不易丢失数据

磁道大小4K
在这里插入图片描述
内部盘片尺寸:3.5英寸
2.5、1.8
接口:早期IDE —— 现在SATA I/II/III
在这里插入图片描述
在这里插入图片描述
转速:5400rpm 一分钟转的次数
7200、10000、15000

厂商:西部数据、希捷、三星、日立、金士顿

盘片:一块硬盘有若干盘片,每个盘片有可以存储数据的上、下两盘面(Side)。这些盘面堆叠在主轴上高速旋转,它们从上至下从“0”开始依次编号。
磁道:每个盘面被划分成许多同心圆,这些同心圆轨迹叫做磁道;磁道从外向内从0开始顺序编号。
扇区:将一个盘面划分为若干内角相同的扇形,这样盘面上的每个磁道就被分为若干段圆弧,每段圆弧叫做一个扇区。每个扇区中的数据作为一个单元同时读出或写入。硬盘的第一个扇区,叫做引导扇区。
柱面:所有盘面上的同一磁道构成一个圆柱,称作柱面
在这里插入图片描述
kernel(操作系统内核)对不同接口硬盘命名方式----RHEL7/centos7:
IDE(并口):/dev/hda
/dev/hdb
STAT(串口) :/dev/sda----/dev设备文件目录
sda是一个文件
s代表sata就是串口
d代表磁盘
a第一块
/dev/sdb----同上

分区方式

MBR:主引导记录(MBR,Master Boot Record)是位于磁盘最前边的额一段引导;
MBR支持最大的磁盘容量是 <2TB。设计时分配4个分区;如果希望超过4个分区(不识别),需放弃主分区,改为扩展分区和逻辑分区。使用fdisk命令
在这里插入图片描述
GPT:全局唯一标识分区表(GUIDPartition Table,缩写:GPT)是一个实体硬盘的分区表的结构布局的标准。GPT 支持大于2T的硬盘,支持128个分区

管理磁盘

1、添加磁盘
VMware增加磁盘:
先关闭虚拟机电源;
编辑虚拟机设置:
在这里插入图片描述
增加磁盘:
在这里插入图片描述
2、管理磁盘流程三部曲
新硬盘:分区(MBR或者GPT)---->格式化/文件系统Filesystem---->挂载mount
毛坯房:隔间录---->放家具/打造格子柜---->价格门/目录

3、查看磁盘信息:
方法1:[root@localhost lv1]# ll /dev/sd* |head -3
brw-rw----. 1 root disk 8, 0 11月 25 09:00 /dev/sda
brw-rw----. 1 root disk 8, 1 11月 25 09:00 /dev/sda1
brw-rw----. 1 root disk 8, 2 11月 25 09:00 /dev/sda2

[root@localhost lv1]# ll /dev/sd* |tail -3
brw-rw----. 1 root disk 8, 128 11月 25 09:00 /dev/sdi
brw-rw----. 1 root disk 8, 144 11月 25 09:00 /dev/sdj
brw-rw----. 1 root disk 8, 160 11月 25 09:00 /dev/sdk
新创建的相当于新买的磁盘
b---->block(块)
方法2:(了解)
[root@localhost lv1]# lsblk | head -10
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 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 2G 0 disk
├─sdb1 8:17 0 1G 0 part /mnt/disk1
├─sdb2 8:18 0 100M 0 part /mnt/disk2
├─sdb3 8:19 0 100M 0 part /mnt/disk3
名称 设备类型 序号 是否可移动设备 大小 是否只读 磁盘或分区 挂载点

4、创建磁盘分区步骤:
MBR:把房子分成卧室和客厅
a:启动分区工具:
[root@localhost lv1]# fdisk /dev/sdb
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xd43058cb 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):
提示1:“n”键---->新建分区
说明:欢迎界面,输入帮助指令或操作指令

命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
提示2:“p”键---->选择主分区
说明:请选择主分区,或扩展分区

Select (default p): p
分区号 (1-4,默认 1):
提示3:“1”键---->选择分区号

分区号 (1-4,默认 1):1
起始 扇区 (2048-10485759,默认为 2048):(0-2048 是MBR存放每个分区的信息)
提示4:“enter”键---->默认当前扇区
说明:选择磁盘开始的扇区

起始 扇区 (2048-10485759,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):
提示5:“+1G”---->输入后回车(实际环境根据磁盘划分,如4T磁盘,可以500G 一个分区。)
说明:选择磁盘分区结束的扇区,即分区大小

Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):+1G
分区 1 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):
提示6:已经完成 1G 大小分区记录。但未生效

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]#
提示7:输入“w”—>保存分区信息并自动退出分区工具

刷新分区表:
[root@localhost ~]# partprobe /dev/sdb partition table

查看分区结果:
[root@localhost ~]# fdisk -l /dev/sdb

磁盘 /dev/sdb:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xa59ce231

设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux

或用lsblk查看:
[root@localhost ~]# lsblk | head -5
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 17G 0 lvm /

结论:划分磁盘完毕,/dev/sdb1

5、创建文件系统
文件系统---->房子里的格子柜
[root@localhost ~]# mkfs.ext4 /dev/sdb1 格式化
输出提示:
在这里插入图片描述
新创建的分区:sdb2、sdb3都需要格式化

6、挂载mount
手动挂载:创建挂载点,一个分区一个挂载点(使用新目录 mnt:mount)也可在其他目录下创建
[root@localhost ~]#mount -t ext4 /dev/sdb1 /mnt/disk1 (重启后 就没有了 需要重新挂载)

7、查看挂载信息
方法1:df -hT
d:disk f:汇总信息h:显示大小 T:磁盘类型
[root@server0 ~]# df -Th 或 df -Th
Filesystem Type Size Used Avail Use% Mounted on

/dev/sdb1 ext4 2G 6M 1.9G 3% /mnt/disk1

分区 文件系统 大小 占用 空闲 占比 挂载点

方法2: mount
[root@server0 ~]# mount

/dev/sdb1 on /mysql_data type xfs (rw,relatime,seclabel,attr2,inode64,noquoa)
/dev/sdb3 on /mnt/disk1/disk2/disk3/disk4 type ext4 (rw,relatime,seclabel,dta=ordered)

mount 看的是磁盘有没有特殊属性,具体属性在后续讲解。

挂载重启失效的问题:

1、永久挂载fstab
mount临时挂载就消失了。需要使用永久挂载(有一定风险 若出错,只能用快照找回)
vim /etc/fstab
/dev/sdb1 /mnt/disk1 ext4 defaults 0 0 (在最后一行输入 0 0 :优先级)
磁盘 挂载点 文件系统类型 默认选项 优先级 优先级
然后使用立刻挂载命令(或者重启会自动挂载上)—>mount -a (手动触发/etc/fstab)

2、写入自启动文件
vim /root/.bashrc
mount -t ext4 /dev/sdb1 /mnt/disk1
不要影响文件原先的内容

8、磁盘分区不可超过4个
需放弃一个主分区(一般选择最后一个),选择创建扩展分区---->在提示2处选择e
a:主分区已创建并使用:
先卸载挂载:umount /dev/sdb4 /mnt/dir4
删除主分区:fdisk /dev/sdb
d(删除)
4(第四个分区)
p(打印分区表,查看删除结果)
创建扩展分区:
n(创建分区)
e(选择扩展分区)
回车(起始扇区)
回车(磁盘的结尾)
创建逻辑分区:
n
回车
+200M
回车

b:主分区未创建未使用
n
e
回车
回车

逻辑卷LVM

写满一个硬盘:
dd if=/dev/zero of=/mnt/disk4/1.txt bs=1M count=1000
dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

  1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
  2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
    bs=bytes:同时设置读入/输出的块大小为bytes个字节。
    count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。

实例:
1.将本地的/dev/hdb整盘备份到/dev/hdd
dd if=/dev/hdb of=/dev/hdd
2.将/dev/hdb全盘数据备份到指定路径的image文件
dd if=/dev/hdb of=/root/image
3.将备份文件恢复到指定盘
dd if=/root/image of=/dev/hdb

LVM目的:管理磁盘的一种方式,性质与基本磁盘无异
特点:随意扩张大小
基本磁盘,缺点是无法调整大小!!!
LVM是 Logical Volume Manager(逻辑卷管理)
PV:物理卷(Physical volume):一块硬盘,或多块硬盘
VG:卷组(Volume Group):一堆磁盘的统称
LV:逻辑卷(Logical Volume):一个逻辑分区,一个分区

创建LVM

准备物理磁盘
[root@server0 ~]# ll /dev/sd*
brw-rw----. 1 root disk 253, 32 Jun 6 17:38 /dev/sdc
brw-rw----. 1 root disk 253, 48 Jun 6 17:38 /dev/sdd
brw-rw----. 1 root disk 253, 64 Jun 6 17:38 /dev/sde

1、将物理磁盘,转换成物理卷-PV
[root@server0 ~]# pvcreate /dev/sdc
Physical volume “/dev/sdc” successfully created
查看PV信息

[root@server0 ~]# pvscan
PV /dev/vdd lvm2 [2.00 GiB]
Total: 1 [2.00 GiB] / in use: 0 [0 ] / in no VG: 1 [2.00 GiB]

[root@server0 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdd lvm2 a-- 2.00g 2.00g

[root@server0 ~]# pvdisplay

[root@server0 ~]# pvs

2、创建卷组-VG(也可直接此步骤,会自动创建物理卷)
[root@server0 ~]# vgcreate vg1 /dev/sdc
Volume group “vg1” successfully created
查看卷组信息
第一种方法,查看卷组的摘要信息。卷组名,物理卷数量,逻辑卷数量,大小等。
[root@server0 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 1 0 0 wz–n- 2.00g 2.00g

第二种方法,扫描卷组信息。
[root@server0 ~]# vgscan
Reading all physical volumes. This may take a while…
Found volume group “vg1” using metadata type lvm2

第三种方法。显示卷组详细信息。
[root@server0 ~]# vgdisplay
— Volume group —
VG Name vg1
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 2.00 GiB //重点观察
PE Size 4.00 MiB //重点观察
Total PE 511 //重点观察
Alloc PE / Size 0 / 0
Free PE / Size 511 / 2.00 GiB
VG UUID 7E4tlj-l0a2-ph52-OytH-eaq7-58K6-2S4n8V

3、创建逻辑卷
[root@server0 ~]# lvcreate -L 200M -n lv1 vg1
指定大小,单位M,G
创建逻辑卷 -L大小 -n卷名 vg1组名
查看LV
[root@server0 ~]# lvscan
ACTIVE ‘/dev/vg1/lv1’ [400.00 MiB] inherit
ACTIVE ‘/dev/vg1/lv2’ [200.00 MiB] inherit

4、创建文件系统/格式化
[root@server0 ~]# mkfs.ext4 /dev/vg1/lv1
注意:/dev/卷组名/逻辑卷名

5、创建挂载点
[root@server0 ~]# mkdir /mnt/lv1

6、挂载
[root@server0 ~]#mount /dev/vg1/lv1 /mnt/lv1
查看挂载结果
[root@server0 ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg1-lv1 651948 32928 619020 6% /mnt/lv1
/dev/mapper/vg1-lv2 245671 2062 226406 1% /mnt/lv2

逻辑卷管理完毕,就可以向挂载点写入数据了。

VG管理+LV扩容

若逻辑卷LV容量不够,需扩容,则需在VG内增加磁盘
扩大VG :vgextend
步骤1:先用lsblk或fdisk -l /dev/sd*查看可添加的磁盘,将该磁盘创建成PV ,将PV增加到VG中
[root@localhost ~]# pvceate /dev/sdd
步骤2:扩展VG,同时包含步骤1
[root@localhost ~]# vgextend vg1 /dev/sdd
Volume group “vg1” successfully extended
查看VG:
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz–n- <19.00g 0
vg1 2 1 0 wz–n- 3.99g 1.82g

[root@localhost ~]# vgscan 或 vgdisplay

扩大LV:
步骤1:查看VG空间
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz–n- <19.00g 0
vg1 2 1 0 wz–n- 3.99g 1.82g
步骤2:扩容LV
[root@localhost ~]# lvextend -L +500M /dev/vg1/lv1 ----增加500M 给lv1
步骤3:刷新
[root@localhost ~]# resize2fs /dev/vg1/lv1
再用df -hT的分区大小,和上次对比,大小已发生变化。
resize2fs f:file s:system 2—>two–>to(谐音)

命令汇总:
在这里插入图片描述
在这里插入图片描述
挂载–取消挂载–挂载
存入的文件会去哪?
1、挂载
在/mnt/disk1中写入文件1.txt,会存在挂载的硬盘sdb1中
2、取消挂载
在/mnt/disk1中写入文件2.txt,会存在系统盘中 umount /dev/sdb1 /mnt/disk1
3、重新挂载
在/mnt/disk1中写入文件3.txt,仍会存在sdb1中,且1.txt仍存在
(若想查看2.txt,需要取消挂载sdb1)

LVM快照

所有快照的共同特点:虚拟的拷贝,一旦被保护的对象遭遇损坏,所有快照将宣告无效。
快照解析:
(1):LVM机制还提供了 对LV做快照的功能,即给文件系统做备份,快照会跟踪原始卷中块的改变,一旦更改了快照对应的文件或目录,这时原始卷上将要改变的数据会在改变之前拷贝到快照预留的空间。
(2):创建快照实际上也是创建了一个逻辑卷,只不过该卷的属性和普通逻辑卷的属性不一样。
在这里插入图片描述
左图为最初创建的快照数据卷状况,LVM会预留一个区域(比如左图的左侧三个PE区块)作为数据存放处,此时快照数据卷内并没有任何数据。而快照数据卷与源数据卷共享所有的 PE 数据,因此你会看到快照数据卷的内容与源数据卷中的内容是一模一样的。等到系统运行一阵子后,假设 A 区域的数据被更新了(上面右图所示),则更新前系统会将该区域的数据移动到快照数据卷中,所以在右图的快照数据卷中被占用了一块PE成为A,而其他 B 到 I 的区块则还是与源数据卷共享!
由于快照区与原本的 LV 共享很多 PE 区块,因此快照区与被快照的 LV 必须要在同一个 VG 上头,下面两点非常重要:
VG中需要预留存放快照本身的空间,不能全部被占满。
快照所在的 VG 必须与被备份的 LV 相同,否则创建快照会失败。

操作过程:
1、创建快照卷
[root@localhost ~]# lvcreate -L 200M -n lv1-snap -s /dev/vg1/lv1
创建LV,名字lv1-snap,根据lv1进行快照,大小200M

2、查询快照卷大小
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv1 vg1 owi-aos— 2.17g
lv1-snap vg1 swi-aos— 200.00m lv1 92.56

3、将快照卷挂载,拷贝出数据,就可以作为恢复数据使用了
[root@localhost ~]# mkdir /mnt/lv1-snap
[root@localhost ~]# mount -o ro /dev/vg1/lv1-snap /mnt/lv1-snap ro:只读

4、查看两个卷的挂载情况
[root@localhost ~]# df -hT | tail -3
/dev/mapper/vg1-lv1 ext4 2.1G 187M 1.9G 10% /mnt/lv1
/dev/sdb3 ext4 93M 1.6M 85M 2% /mnt/disk3
/dev/mapper/vg1-lv1–snap ext4 2.1G 187M 1.9G 10% /mnt/lv1-snap

5、查看两个卷的关系
[root@localhost ~]# lvscan
ACTIVE ‘/dev/centos/swap’ [2.00 GiB] inherit
ACTIVE ‘/dev/centos/root’ [<17.00 GiB] inherit
ACTIVE Original ‘/dev/vg1/lv1’ [2.17 GiB] inherit
ACTIVE Snapshot ‘/dev/vg1/lv1-snap’ [200.00 MiB] inherit

6、查看文件内容,根据情况进行使用
[root@localhost ~]# ls /mnt/lv1
2.txt
[root@localhost ~]# ls /mnt/lv1-snap
2.txt lost+found

7、观察快照(snapshot)
[root@localhost ~]#lvs

8、XFS文件系统 不识别uuid,所以需要单独加一个-o nouuid来忽略掉(本次使用的是ext4)
[root@localhost ~]# mount -o nouuid,ro /dev/vg1/lv1-snap /mnt/lv1-snap/

注:挂载快照,尽量使用ro的方式,将不会破坏快照卷中的数据。
在这里插入图片描述
快照内文件不可修改,也不可增加文件夹

删除快照步骤:
umount 取消挂载
lvremove 移除lv

命令:
rm -rf /mnt/disk1/* ----> 删除disk1中的文件

交换分区管理Swap

swap作用:‘提升’内存的容量,防止OOM(Out Of Memory)
swap大小:
推荐:设置交换分区大小为内存的2倍
生产:大于4GB而小于16GB内存的系统,最小需要4GB交换空间;
大于16GB而小于64GB内存的系统,最小需要8GB交换空间;
大于64GB而小于256GB内存的系统,最小需要16GB交换空间。

1、查看当前的而交换分区
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 1819 814 186 39 818 783
Swap: 1047 0 2047
(-m 单位是M -g 单位是G)
2、增加交换分区
(1)准备分区
准备将/dev/sde磁盘,划分为1G分区为例
[root@localhost ~]#fdisk /dev/sde
过程略;可选:划分分区后,按“t”键,将类型设置为82(在centos 6之前需要设置 ;本次可不设置)
[root@localhost ~]#partprobe /dev/sde (刷新)
查证:
[root@localhost ~]# ll /dev/sde*
brw-rw----. 1 root disk 8, 64 11月 26 16:11 /dev/sde
brw-rw----. 1 root disk 8, 65 11月 26 19:25 /dev/sde1
(2)格式化
[root@localhost ~]#mkswap /dev/sde1
(3)挂载
[root@localhost ~]#swapon /dev/sde1
取消挂载
[root@localhost ~]#swapoff /dev/sde1

(4)查证
[root@localhost ~]#free -m
total used free shared buff/cache available
Mem: 1819 810 190 39 818 787
Swap: 2047 0 2047
增加后的交换分区变大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值