硬盘分区(disk partition)
项目名称:
存储管理、进程管理
项目需求:
1、在企业服务器上安装新硬盘,对磁盘进行分区、格式化、挂载处理
2、根据企业服务器数据业务的不同,采用不同的raid技术来保证数据的读写速度、数据安全
3、在企业的存储服务器上采用LVM逻辑卷技术来实现容量的动态调整
4、在服务器的运维工作中随机对系统进程进行分析和管理
项目测试:
原理概述:存储管理是系统中必不可少的技术,Linux系统中支持多种存储管理技术。在企业服务器中需要根据业务的不同来分别使用分区、raid、LVM逻辑卷等技术。
测试环境:Linux系统、ssh远程管理
项目实施:
操作指南:
磁盘分区管理
需求:服务器上装了一块新硬盘,需要能正常往硬盘上写入数据。
新硬盘的相关技术处理:
1、分区。对硬盘上的数据进行分类管理。类似于windows中的c、d、e盘。
2、格式化。在硬盘的分区上创建文件分配表。也称为创建文件系统。
3、挂载分区。将硬盘分区中的文件读到一个文件夹中。
准备:将Linux虚拟机用init 0正常关机,然后添加4块5G的硬盘。然后创建快照“4块硬盘”。
查看硬盘的型号:smartctl -a /dev/sda
查硬盘等块设备:lsblk(list block)
---------sda1代号的意思
s是表示硬盘接口是SCSI(小型计算机接口)。
d表示disk磁盘。
a表示主板上第一个接口上的第一块硬盘。
1表示第一个分区
查所有的硬盘分区表:fdisk -l |grep sd
GPT分区管理:parted命令
GPT:是GUID(Globally Unique Identifier)Partition Table全局唯一标识分区表的缩写。
GPT分区表中只有主分区这个管理概念。允许创建128个主分区。GPT分区表可以用来管理总容量大于2TB以上的硬盘。硬盘的UUID号可用blkid来查。
GUID:全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。GUID标识符由随机产生的字母、数字混合
组成。
------------------ 。
要求:将2GB的硬盘sdb用GPT分区表进行管理,要求给sdb硬盘创建2个主分区,第1个主分区容量是1.5G,另一个主分区的容量使用所有剩余空间。
查块设备列表:lsblk
定义分区表标签(即格式):parted -s /dev/sdb mklabel gpt
创建第一个1.5G的主分区:parted -s /dev/sdb mkpart primary 1M 1.5G (primary 主要的)
创建第2个分区(使用所有的剩余空间-1)parted -s /dev/sdb mkpart primary '1.5 -1'
查看sdb硬盘的分区表信息lsblk
parted命令的附加功能:
显示(print)sdb硬盘的分区表:parted /dev/sdb p
删除sdb硬盘的2号分区:parted -s /dev/sdb rm 2
mount挂载:将分区的文件系统内容读取到一个目录中。访问这个挂载点目录就等同于访问这个分区文件系统中的文件。其实windows中的c、d等盘符就是自动挂载的目录。例如,在windows中插入U盘后会被自动分配到一个盘符,这就是微软在后台做的一个mount自动挂载的程序。
要求:将sdb硬盘的第1个分区格式化成ext4文件系统,将第2个分区格式化成xfs文件系统。将第1个分挂载到/mnt/sdb1目录中,将第2个分挂载到/mnt/sdb2目录中。分别往分区的挂载点目录中写入一些数据。
格式化一号分区:mkfs.ext4 /dev/sdb1
格式化二号分区:mkfs.xfs /dev/sdb2
创建挂载点目录:mkdir -pv /mnt/sdb{1,2}
手动挂载:mount /dev/sdb1 /mnt/sdb1 ;
mount /dev/sdb2 /mnt/sdb2;
lsblk
写入数据:touch /mnt/sdb1/{a.mp3,b.mp4}
cp -v /etc/host* /mnt/sdb2
递归(-R)显示目录中的文件名列表:ls -R /mnt
---------------------------
卸载挂载点:umount /dev/sdb1 ;umount /dev/sdb2
删除sdb1、sdb2分区:parted -s /dev/sdb1 rm 1
parted -s /dev/sdb2 rm 2
或者 parted -s /dev/sdb mklabel msdos
---------------------------------------------------------------
MBR分区表管理
MBR:是主引导记录(main boot record)的s缩写。
MBR:是保存在硬盘的0磁道0柱面1扇区的位置,占用512字节(因为一个扇区默认的大小是512字节)。其中bootloader引导程序占用446字节,DPT(disk partition tabel)分区表占用64字节,magic占用2字节。
MBR的分区表特点:
0.只能管理总容量在2TB以内的硬盘。
1.最多只允许分4个主分区,因为DPT分区表总容量是64字节,每个分区占用16字节,即64/16=4
2.如果想分4个以上的分区,可采用分一个主分区(primary)和一个扩展分区(extend),然后在扩展分区只创建逻辑(logical)分区来实现。
3.主分区编号为1~4,第一个逻辑分区的编号默认为5.
4.只能在主分区和逻辑分区上格式化创建文件系统。并且只能在主分区和逻辑分区上写入文件。
硬盘分5个分区的方案(用MBR分区表)
方案一、1个主分区,一个扩展分区,4个逻辑分区。
方案二、3个主分区,一个扩展分区,2个逻辑分区。
MBR分区练习:将2GB的硬盘sdb用MBR分区表进行管理,要求给sdb硬盘创建1个容量为1.2G的主分区,再创建一个扩展分区容量为所有剩余空间。在扩展分区中创建2个逻辑分区,第1个逻辑分区容量为600M,第2个逻辑分区的容量为所有剩余空间。
cfdisk /dev/sdb
创建主分区:n新建==>p主分区==>1.2G回车==>beginning回车==>W(大写)保存==>yes回车
创建逻辑分区1:选free空闲空间==> n新建==>l逻辑分区==>600M回车==>beginning回车
创建逻辑分区2:选free空闲空间==> n新建==>l逻辑分区==>回车==>beginning回车==>W保存(这是大写的)==>yes回车==>q键退出
lsblk
将sdb硬盘的第1个分区格式化成ext4文件系统,将第1、2个逻辑分区格式化成xfs文件系统。将第1个分挂载到/mnt/data目录中,将第1、2个逻辑分区分别挂载到/mnt/mysql、/mnt/web目录中。分别往分区的挂载点目录中写入一些数据。
格式化分区:mkfs.xfs /dev/sdb1
mkfs.ext4 /dev/sd5
mkfs.ext4 /dev/sd6
创建挂载点目录:mkdir -pv /mnt/{data,mysql,web}
手动挂载:mount /dev/sdb1 /mnt/data
mount /dev/sdb5 /mnt/mysql
mount /dev/sdb6 /mnt/web
lsblk
写入数据:touch /mnt/data/{a.txt}
touch /mnt/mysql/{b.txt}
touch /mnt/web/{c.txt}
ls -R /mnt/
把sdb分区的文件系统卸载掉,删除sdc、sdd硬盘的分区表
umount /dev/sdb1
umount /dev/sdb5
umount /dev/sdb6
parted -s /dev/sdb mklabel msdos
fstab自动挂载
mount 手动挂载的缺点:当系统重启后,用户必须重新手动将分区的文件系统挂载到指定的目录。但是用户可以将mount手动挂载的命令写到/etc/rc.d/rc.local开机运行脚本文件中,系统在启动时会自动执行rc.local脚本中的命令。
fstab自动挂载配置文件:fstab是file system table文件系统表的缩写。是用来记录磁盘分区设备自动挂载信息的配置文件。系统启动时会读取/etc/fstab文件中的挂载配置信息,并自动挂载里面的设备。
查看/etc/fstab配置文件内容,熟悉fstab文件格式。
cat /etc/fstab 内容如下(可用man 5 fstab了解文件的格式)
分区设备 挂载点目录 文件系统类型(格式) 挂载选项 dump备份 fsck检查
/dev/mapper/centos-root / xfs defaults 0 0
UUID=8b947ec7-6d78-4121-8a4c-7aaabf3a221e /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
格式说明:
第1列:分区设备,可以是磁盘的分区设备名、分区的UUID值、分区的label标签。UUID值、label标签可用blkid命令查。
第2列:挂载点目录,必须是已存在的空目录。
第3列:文件系统类型,也就是用mkfs、mkfs.ext4、mkfs.xfs格式化创建的文件系统格式。文件系统格式可以是ext4、、xfs、vfat、ntfs、iso9660、nfs、smb等。
第4列:挂载选项,通常是defaults默认,default代表的选项是rw可读可写,suid超级权限,dev设备,exec可执行,auto自动,nouser无用户,and async异步。选项还可以是ro只读、usrquota用户配额、grpquota组配额。
第5列:dump备份,即是否使用dump工具进行数据备份。0表示禁用,1表示启动。
第6列:fsck检查,即是否使用fsck工具进行磁盘扫描检查。0表示禁用,1表示启动。
要求将sdb硬盘的三个分区的文件系统卸载。并用lsblk或df -hT查看挂载信息。
查挂载信息:lsblk 或 df -hT
卸载分区的文件系统:umount -v /dev/sdb{1,5,6}
查挂载信息:lsblk 或 df -hT
采用fstab文件实现sdb硬盘三个分区的文件系统自动挂载。
第1步,在fstab配置文件中添加自动挂载设置。
vim /etc/fstab 在文件最后添加如下内容
#分区设备 挂载点 文件系统类型 挂载选项 dump备份 fsck检查
/dev/sdb1 /mnt/data ext4 defaults 0 0
/dev/sdb5 /mnt/mysql xfs defaults 0 0
/dev/sdb6 /mnt/web xfs defaults 0 0
第2步,用mount -av做自动挂载测试。用lsblk或df -hT显示已挂载的分区文件系统信息
mount -av
lsblk 或 df -hT
第3步,此步骤可以不做,仅用于验证效果。reboot重启linux系统,系统启动后,用lsblk或df -hT看sdb硬盘分区的文件系统是否自动挂载上了。
reboot 重启
lsblk
mount命令详解:
用法:mount [选项] 分区设备 挂载点
选项:
-a, --all 挂载 fstab 中的所有文件系统
-h, --help 显示此帮助并退出
-o, --options <列表> 挂载选项列表,以英文逗号分隔,选项用man mount查帮助手册
-r, --read-only 以只读方式挂载文件系统(同 -o ro)
-t, --types <列表> 限制文件系统类型集合,文件系统格式类型通常有ext4、xfs、vfat、ntfs、smb、nfs、swap、iso9660等
--source <源> 指明源(路径、标签、uuid)
--target <目标> 指明挂载点
-v, --verbose 打印当前进行的操作
-w, --rw, --read-write 以读写方式挂载文件系统(默认)
源(设备):
-L, --label <标签> 同 LABEL=<label>
-U, --uuid <uuid> 同 UUID=<uuid>
LABEL=<标签> 按文件系统标签指定设备
UUID=<uuid> 按文件系统 UUID 指定设备
PARTLABEL=<标签> 按分区标签指定设备
PARTUUID=<uuid> 按分区 UUID 指定设备
<设备> 按路径指定设备
<目录> 绑定挂载的挂载点(参阅 --bind/rbind)
<文件> 用于设置回环设备的常规文件
操作:
-B, --bind 挂载其他位置的子树(同 -o bind)
-M, --move 将子树移动到其他位置
-R, --rbind 挂载其他位置的子树及其包含的所有挂载
mount是例:执行如下功能的命令。
创建挂载点目录:mkdir -pv /tmp/{c..g}
显示磁盘块设备清单:lsblk
将/dev/sda1分区挂载到/tmp/c目录中:mount -t xfs /dev/sda1 /tmp/c
将/dev/sda1分区以只读方式挂载到/tmp/d目录中:mount -o ro /dev/sda1 /tmp/d
以uuid方式将/dev/sda1分区挂载到/tmp/e目录中:
blkid /dev/sda1;
mount UUID="8b947ec7-6d78-4121-8a4c-7aaabf3a221e" /tmp/e
给/dev/sda1分区设置label标签,以label标签的方式挂载sda1分区到/tmp/f目录中:
将/usr目录挂载到/tmp/g目录中(通常用于文件共享时):mount -B /usr /tmp/g
fdisk分区命令:
功能:对硬盘进行分区的查、增、删、改等操作。
用法:fdisk [选项] 磁盘设备
选项:-l 显示分区表信息
例:用lsblk显示磁盘块设备,用fdisk命令显示sdb硬盘的分区表信息