磁盘管理
设备文件 :
1.磁盘文件的设备文件名一般都为 /dev/不同的文件名,目前在本人使用的VMware中则是 /dev/sda 。
2.在机械硬盘中的存储术语则分为如下:
head:磁头 ; track:磁道 ; cylinder:柱面 ; sector:扇区
其中我们将 cylinder 、 head 、 sector 称之为磁盘的三围,并且每个sector的大小512bytes字节。
3.dd 命令
dd if=原磁盘文件 of=指定路径 bs=1 count=n
这个命令表示将原磁盘文件备份到指定路径,并且每次读取和写入1个字节重复n次
dd if=/dev/zero of=原磁盘文件 (表示破坏磁盘文件)
skip=n 是在备份或者恢复时对if后面的文件跳过n块开始
seek=m 是在备份或者恢复时对of后目标文件跳过m开始写
4.磁盘分区时使用的命令:
parted 支持msdos(MBR)和GPT
fdisk 主要支持 msdos
gdisk 主要支持 GPT
其中parted创建分区是实时生效的,而fdisk与gdisk则需要手动进行磁盘分区的识别更新:
在CentOS6中:执行 partx -a 接上需要重新识别的分区
在CentOS7中:执行partprobe 接上需要重新识别的分区
===========================================================================
文件系统 :
(操作系统中负责管理和存储文件信息的软件结构称为文件管理系统)
1. Linux中常用的文件系统:ext2、ext3、ext4、xfs、swap
2. 创建文件系统:
mkfs.或者mkfs -t“接上需要创建的文件系统类型” /dev/device(设备)
mke2fs只支持ext系列(创建命令仍为mke2fs -t)
其中创建时使用 –L 选项,则是可以为设备文件指定一个卷标(名字)
e2label /dev/device 查询此设备文件的卷标
/dev/device +指定的名字 改卷标为指定名字
(此命令是管理ext系列文件系统)
3. tune2fs 可对ext系列文件系统进行参数重调
-L 'LABEL':修改卷标
-U UUID: 修改UUID号
4.mount +参数选项 + 需要挂载的设备文件 + 挂载点
-tvsftype:指定要挂载的设备上的文件系统类型
-r: readonly,只读挂载
-w: read and write, 读写挂载
-n: 不更新/etc/mtab,mount不可见
cat/proc/mounts 可以看到用-n所隐藏的挂载信息
-a:自动挂载定义在了/etc/fstab文件中尚未挂载的文件系统,(且挂载选项中有auto功能)
5.mount -o 后面加上一些参数信息,可以在挂载时设定相关内容,如下:
ro 只读 rw 读写
async|sync 异步或同步传输
atime|noatime 目录和文件的访问时间是否更新
diratime|nodiratime 目录的访问时间是否更新
auto|noauto 是否可以使用mount -a 自动挂载
exex|noexec 是否运行应用程序,无论是否有x权限
dev|nodev 是否可以在该文件系统上使用dev设备
suid|nosuid 是否支持suid和guid权限
remount 重新挂载,要在后面具体指挂载选项,如不指定,重新挂载为默认权限
nouser|user 是否允许写入/etc/fstab中的挂载项目让普通用户执行以进行挂载及卸载
其中mount默认的权限(defaults)是:rw, suid, dev, exec, auto,nouser, async
6.一些查看文件系统的相关命令,如下:
blkid 查看块设备属性信息
“-L + 卷标名”或者“-U + UUID号” 查询对应的设备
findfs +“LABEL=卷名” 或者 “UUID=指定号” 查询分区
e2label + 分区 可查看分区卷标
+ 分区 + 名字 可将该分区的卷标改为设定的 (同理tune2fs –L +名字)
findmnt +挂载点或者分区 显示相关分区的挂载信息
lsof +挂载点 查看正在访问指定文件系统的进程
如果要结束进程则可以使用 kill +进程号
===========================================================================
高级文件系统
1,Raid阵列
Raid分为条带和镜像两种方式
软raid(在虚拟机上)的实现
mdadm
-C: 创建模式
-n #: 使用#个块设备来创建此RAID
-l #:指明要创建的RAID的级别
-a {yes|no}:自动创建目标RAID设备的设备文件
-c CHUNK_SIZE: 指明块大小
-x #: 指明空闲盘的个数
2.逻辑卷管理器LVM
a.创建逻辑卷步骤:
第一步: pvcreate + 块设备文件 (将块设备指定为物理卷)
第二步: vgcreate + 设定的卷组名 + 物理卷(其中 -s 参数可指定大小)
第三步: lvcreate –L “指定大小” -n“设定的逻辑卷名” + 卷组名
第四步: 使用mkfs命令创建文件系统
第五步: mount +/dev/卷组名/逻辑卷名 + 挂载点
b.逻辑卷的在线扩展
情况1:卷组大小足够扩展
方法:lvextend -L“指定大小” /dev/卷组名/逻辑卷名
resize2fs /dev/卷组名/逻辑卷名
(这里是将扩展后的逻辑卷重设文件系统)
其中这两步骤可化为一步,如下:
lvextend -L“指定大小” -r /dev/卷组名/逻辑卷名
情况2:卷组大小不够扩展
pvcreate + 块设备文件 (将块设备指定为物理卷)
vgextend +卷组名 + 物理卷名
lvextend -L“指定大小” -r /dev/卷组名/逻辑卷名
c. 缩减逻辑卷
第一步:卸载 umount + 逻辑卷的挂载点
第二步:扫描 e2fsck -f /dev/卷组名/逻辑卷名
第三步:减小文件系统
resize2fs + /dev/卷组名/逻辑卷名 + 指定要缩减的大小
第四步:减小逻辑卷大小
lvreduce –L “指定缩减大小”+ /dev/卷组名/逻辑卷名
如果先对逻辑卷减小了指定大小,则需要将减小的大小加回去,然后继续执行 第二步、第三步和第四步
d. 若要跨主机迁移卷组,步骤如下:
1.增加一个独立文件的虚拟磁盘到源主机
2.将该磁盘做为PV(物理卷),扩展进卷组(vgextend +源卷组名 +PV)
3.将所有数据都移动到将要拆卸的物理卷上
pvmove +数据 + PV
4.将源卷组设置为非激活
vgchange -an 源卷组
5.如果卷组中除了要拆卸的硬盘外还有其他的PV,则进行删除,如没有,直接第6步
vgreduce +源卷组+ 要被移除的其他物理卷PV
6.将源卷组设置为export状态
vgexport 源卷组
7.拔硬盘,并加到目标主机
8.把 源卷组 设置为import
vgimport 源卷组
9.把源卷组设置为激活
vgchange –ay 源卷组
10.挂载