磁盘管理
Linux之磁盘管理
1. 磁盘的分区、格式化和挂载
1.1 MBR全称为Master Boot Record
主引导记录,是传统的分区机制,应用于绝大多数使用BIOS的PC设备
1.2 MBR+BIOS
MBR支持32位和64位系统;MBR支持分区数量有限;MBR只支持不超过2T的硬盘,超过2T的硬盘将只能用2T空间。
1.3 GPT(GUID Partition Table)
全局唯一标识分区表,是一个较新的分区机制,解决了MBR很多缺点。
支持超过2T的磁盘(64位寻址空间)。fdisk最大只能建立2TB大小的分区,创建一个大于2TB的分区使用parted。向后兼容MBR。
fdisk -l #查看系统所有的磁盘信息
关于/dev/sda1名字的介绍
s代表除了IDE(IDE会用h表示)接口的其它接口,如scsi,sata,u盘等
d代表disk
a代表第一个磁盘
1代表第一个分区
2. 新建分区
fdisk /dev/sdb
命令(输入 m 获取帮助):m
命令操作
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)
重点了解一下这几个:
a toggle a bootable flag #表示一个分区作为引导分区
d delete a partition #删除一个分区
l list known partition types #列出已知的分区类型
n add a new partition #增加一个分区
p print the partition table #打印当前的分区表
q quit without saving changes #不保存退出
w write table to disk and exit #保存退出
命令(输入 m 获取帮助):n #(n 表示增加分区)
Partition type:
p primary (0 primary, 0 extended, 4 free) #(这里的p表示主分区)
e extended #(这里的e表示创建扩展分区)
Select (default p): p #(输入p选择主分区)
分区号 (1-4,默认 1):1 #(默认,即敲回车)
起始 扇区 (2048-41943039,默认为 2048): #(默认,即敲回车)
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G #指定分区大小
命令(输入 m 获取帮助):p #(p 查看一下分区情况)
命令(输入 m 获取帮助):w #(w 保存分区信息并退出)
The partition table has been altered!
ls /dev/sdb* #查看分区是否成功
/dev/sdb /dev/sdb1 #显示有这个,说明分区创建成功
3. 格式化分区
分好区了以后我们还无法直接使用该分区,还需要先将该分区进行格式化了才能使用。
mkfs.xfs /dev/sdb1 #格式化分区
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
4. 挂载分区
现在已经将新建的分区格式化好了,但是还是不能使用,还需要挂载到我们的系统目录下才能使用。
mount 命令 挂载(启用一个磁盘分区或文件)
命令格式:
# mount [选项] 挂载点 需挂载介质(磁盘或文件)
选项:
-o 用来描述设备或文件挂载方式,该选项拥有以下常用参数:
loop 将一个文件以硬盘分区的形式挂载到系统上
ro 使用只读的方式挂载
rw 使用可读可写的方式挂载
例:mount /dev/sdb1 /sdb #将磁盘sdb1挂载到 /sdb 目录下
df -h #查看当前哪些分区挂载到哪些目录的对应信息
5. parted命令新建分区
parted 命令 另一个磁盘管理工具,可用于msdos分区和GPT分区
命令格式:
parted [需要管理的磁盘] 后面如果不指定磁盘,则为系统中排列最前面的那个磁盘分区
parted /dev/sdc #使用parted工具为sdc磁盘分区
GNU Parted 3.1
使用 /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
help #查看帮助
mkpart #创建一个分区
p print #查看当前磁盘的分区信息
q quit #退出程序
rm #删除分区(当有多个分区时会让你选择删除哪个个分区,输入分区编号)
(parted) p #查看当前磁盘的分区信息
错误: /dev/sdc: unrecognised disk label #未识别是的磁盘标签
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
(parted) mklabel #创建磁盘标签
新的磁盘标签类型? gpt #指定磁盘标签为GPT
(parted) mkpart #创建一个分区
分区名称? []? sdc
文件系统类型? [ext2]? xfs
起始点? 1
结束点? 5G
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
1 1049kB 5000MB 4999MB sdc
(parted) q
信息: You may need to update /etc/fstab.
创建好分区以后,我们还是需要对新建的分区进行格式化和挂载才能正常使用
mkfs.xfs /dev/sdc
mkdir /sdc
mount /dev/sdc /sdc
6. 添加交换分区
手动添加系统的swap(交换分区)
命令:
free -h #查看当前系统的swap分区信息
mkswap #添加swap分区
mkswap 命令使用格式:
1. mkswap /dev/sdc1 #使用一个新建分区作为swap分区
2. mkswap /swapfile #使用一个二进制文件作为swap分区
我们先新建一个分区出来:fdisk命令建立一个sdc1新分区大小为1G
mkswap /dev/sdc1 #使用sdc1分区作为swap分区
mkswap: /dev/sdb1: warning: wiping old xfs signature.
正在设置交换空间版本 1,大小 = 1048572 KiB
无标签,UUID=4aa36c9f-a03f-4722-baa2-808e41416520
swapon /dev/sdc1 #使上面的操作生效(启用新加入的swap分区容量)
free -h #再来查看一下现在的swap分区容量是否发生改变
total used free shared buff/cache available
Mem: 976 552 71 6 352 225
Swap: 3071 2 3069
swapoff /dev/sdc1 #取消sdc1作为swap分区
free -h #查看容量是否缩小
total used free shared buff/cache available
Mem: 976 552 71 6 352 225
Swap: 2047 2 2045
使用二进制文件作为swap分区(二进制文件是无法使用cat和vim进行查看和编辑的)
dd命令
从标准输入、文件或设备读取数据,依照指定的格式来转换数据, 再输出至文件、设备或标准输出。
格式:dd <选项=值>
常用选项
if=file:输入文件名或设备名,确省标准输入
of=file:输出文件名或设备名,确省标准输出
bs=n:同时设置输入输出块的大小为n
count=n:仅仅读取指定的n块数据
# dd if=/dev/zero of=/swapfile bs=1M count=1024 使用dd命令生成一个大小为1024M大小的二进制文件
# mkswap /swapfile 将swapfile文件添加为swap分区
# swapon /swapfile 使上面的操作生效
# free -h 检查是否生效(容量是否变大)
7. 磁盘接口
SAS:2.5英寸的磁盘接口,转速快,读写速度快 串行
SATA 6Gb/s=6x1024/8=768MB/s
这里指的是硬盘接口的速度,而非硬盘本身读写的速度
硬盘读写速度和转速等相关因素有关
5400转的笔记本硬盘:50-90MB每秒
7200转的台式机硬盘:90-190MB每秒
DAS 直挂式存储 direct access storage
单台服务器
如:服务器的硬盘,直接接入到服务器里
NAS 网络附加存储 network attched storage
多个主机连接到同一个共享存储上
如 NFS,SAMBA;但在工业应用中,使用的方式可能会有些修改
SAN 存储区域网络 storage area network
两种 SAN
FC-SAN:早期的 SAN,服务器与交换机的数据传输是通过光纤进行的,服务器把 SCSI
指令传输到存储设备上,不能走普通 LAN 网的 IP 协议。
IP-SAN:后期出现的 SAN,用 IP 协议封装的 SAN,可以完全走普通网络,因此叫做IP-SAN,最典型的就是热门的 ISCSI。
ISCSI:通过走以太网的 TCP/IP 网络网卡,网络交换机,网线都比较便宜;建网也方便,使用 3260 端口的服务
8.raid冗余磁盘阵列
多块硬盘组合阵列来使用,提高读写速度,空间大小,冗余。在生产环境中都是做硬件raid的。
raid level:级别仅仅代表磁盘组织方式不同,没有上下之分
组合raid要考虑:
数据的可用性
数据的读写速度
磁盘利用率
raid 0 条带化(stripe)
数据{1.2.3.4.5.6}写入
性能:读写提升
冗余(容错):无
空间利用率:100%
至少2块磁盘

raid 1 镜像(mirror)
数据{1.2.3.4.5.6}写入
性能:写性能下降,读性能提升
冗余(容错):有
空间利用率:50%
至少2块磁盘

raid 5 校验码(Check code)
数据{1.2.3.4.5.6}写入
性能:读写提升
冗余(容错):有
空间利用率:(n-1)/n
至少3块磁盘

raid 01 先做 raid 0 再做 raid 1
性能:读提升写下降
冗余(容错):有一定冗余
空间利用率:50%
至少4块磁盘

raid 10 先做 raid 1 再做 raid 0
性能:读写提升
冗余(容错):有
空间利用率:50%
至少4块磁盘

9. 安装RAID工具软件包 mdadm
yum -y install mdadm*
10. 使用mdadm创建RAID组0,1,5
格式:mdadm --create raid名称 --level=级别 --raid-devices=磁盘数量 磁盘1 磁盘2 磁盘3 磁盘N
创建RAID 0命令:
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdvc
创建RAID 1命令:
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdd /dev/sde
创建RAID 5命令:
mdadm --create /dev/md5 --level=5 --raid-devices=4 /dev/sdf /dev/sdg /dev/sdh /dev/sdi
cat /proc/mdstat #查看创建的raid组信息
类似以下信息:
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md5 : active raid5 sdi[4] sdh[2] sdg[1] sdf[0]
3142656 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
md1 : active raid1 sde[1] sdd[0]
1047552 blocks super 1.2 [2/2] [UU]
md0 : active raid0 sdc[1] sdb[0]
2095104 blocks super 1.2 512k chunks
unused devices:
<none>
11.使用mkfs.xfs格式化新创建的RAID组0,1,5
mkfs.xfs /dev/md0
mkfs.xfs /dev/md1
mkfs.xfs /dev/md5
12. 使用mount挂载raid组0,1,5
创建三个目录:
mkdir -p /raid{0,1,5}
挂载磁盘:
mount /dev/md0 /raid0
mount /dev/md1 /raid1
mount /dev/md5 /raid5

浙公网安备 33010602011771号