磁盘管理
管理分区
- 列出块设备
lsblk
parted命令 高级分区操作
用法:
parted [选项]... [设备 [命令 [参数]...]...]
parted /dev/sdb mklabel gpt|msdos
parted /dev/sdb print
parted /dev/sdb mkpart primary 1 200 (默认M)
parted /dev/sdb rm 1
parted –l 列出分区信息
分区工具
- gdisk /dev/sdb 类fdisk 的GPT分区工具
- fdisk -l [-u] [device...] 查看分区
- fdisk /dev/sdb 管理分区
- 子命令:
p 分区列表
t 更改分区类型
n 创建新分区
d 删除分区
v 校验分区
u 转换单位
w 保存并退出
q 不保存并退出
同步分区表
- 查看内核是否已经识别新的分区
cat /proc/partations - centos6通知内核重新读取硬盘分区表
新增分区用
partx -a /dev/DEVICE
kpartx -a /dev/DEVICE -f: force
删除分区用
partx -d --nr M-N /dev/DEVICE - CentOS 5,7: 使用partprobe partprobe [/dev/DEVICE]
文件系统类型
- ext2(Extended file system) :适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分区
- ext3:是 ext2 的改进版本,其支持日志功能,能够帮助系统从非正常关机导致的异常中恢复。它通常被用作通用的文件系统
- ext4:是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升
- xfs:SGI,支持最大8EB的文件系统
- btrfs(Oracle), reiserfs, jfs(AIX), swap
- 光盘:iso9660
文件系统分类
- 根据其是否支持"journal"功能:
日志型文件系统: ext3, ext4, xfs, ...
非日志型文件系统: ext2, vfat - 文件系统的组成部分:
内核中的模块:ext4, xfs, vfat
用户空间的管理工具:mkfs.ext4, mkfs.xfs, mkfs.vfat
创建文件系统
- mkfs命令:
(1) mkfs.FS_TYPE /dev/DEVICE
ext4
xfs
btrfs
vfat
(2) mkfs -t FS_TYPE /dev/DEVICE
-L 'LABEL' 设定卷标
创建ext文件系统
- mke2fs:ext系列文件系统专用管理工具
-t {ext2|ext3|ext4} 指定文件系统类型
-b {1024|2048|4096} 指定块大小
-L ‘LABEL’ 设置卷标
-j 相当于 -t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i # 为数据空间中每多少个字节创建一个inode;不应该小于block大小
-N # 指定分区中创建多少个inode
-I 一个inode记录占用的磁盘空间大小,128---4096
-m # 默认5%,为管理人员预留空间占总空间的百分比
-O FEATURE[,...] 启用指定特性
-O ^FEATURE 关闭指定特性
用mount命令挂载文件系统
◆ 挂载方法:mount DEVICE MOUNT_POINT
◆ mount:通过查看/etc/mtab文件显示当前已挂载的所有设备
◆ mount [-f nrsvw] [-t vfstype] [-o options] device dir
device:指明要挂载的设备; (1) 设备文件:例如/dev/sda5
(2) 卷标:-L 'LABEL', 例如 -L 'MYDATA'
(3) UUID, -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'
(4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
dir:挂载点
事先存在,建议使用空目录
进程正在使用中的设备无法被卸载
◆ 常用命令选项
-t vsftype 指定要挂载的设备上的文件系统类型
-r readonly,只读挂载
-w read and write, 读写挂载
-n 不更新/etc/mtab,mount不可见
-a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)
-L 'LABEL' 以卷标指定挂载设备
-U 'UUID' 以UUID指定要挂载的设备
-B, --bind 绑定目录到另一个目录上
查看内核追踪到的已挂载的所有设备
cat /proc/mounts
◆ 卸载命令
- 查看挂载情况
findmnt MOUNT_POINT|device - 查看正在访问指定文件系统的进程
lsof MOUNT_POINT
fuser -v MOUNT_POINT - 终止所有在正访问指定的文件系统的进程
fuser -km MOUNT_POINT - 卸载
umount DEVICE
umount MOUNT_POINT
工具dd
◆ dd命令:转换并复制文件
◆ 用法:
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=# count=#
if=file 从所命名文件读取而不是从标准输入
of=file 写到所命名的文件而不是到标准输出
ibs=size 一次读size个byte
obs=size 一次写size个byte bs=size block size, 指定块大小(既是是ibs也是obs)
cbs=size 一次转化size个byte
skip=blocks 从开头忽略blocks个ibs大小的块
seek=blocks 从开头忽略blocks个obs大小的块
count=n 复制n个bs
RAID
RAID级别
RAID-0:条带卷,strip
RAID-1:镜像卷,mirror
RAID-2
..
RAID-5
RAID-6
RAID-10
RAID-01
逻辑卷管理器
pv管理工具
◆ 显示pv信息
pvs:简要pv信息显示
pvdisplay:列出详细pv信息
◆ 创建pv
pvcreate /dev/DEVICE
◆ 删除pv
pvremove /dev/DEVICE
vg管理工具
◆ 显示卷组
vgs
vgdisplay
◆ 创建卷组
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [物理设备路径]
◆ 管理卷组
vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
◆ 删除卷组
先做pvmove,再做vgremove
lv管理工具
显示逻辑卷
lvs
Lvdisplay
◆ 创建逻辑卷
lvcreate -L #[mMgGtT] -n NAME VolumeGroup
lvcreate -l 60%VG -n mylv testvg
lvcreate -l 100%FREE -n yourlv testvg
◆ 删除逻辑卷
lvremove /dev/VG_NAME/LV_NAME
◆ 重设文件系统大小
fsadm [options] resize device [new_size[BKMGTEP]]
resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
xfs_growfs /mountpoint
创建逻辑卷步骤:
1.硬盘分区 (用“t”创建8e标识)fdisk
2.创建物理卷
pvcreate /dev/sd{b1,c} b1:分区 c:整块硬盘
3.物理卷加入卷组,创建卷组名字 vgcreate -s 16M 卷组名字 物理卷名字(-s 16M:设置PE单位为16M)
blkid 查看分区UID,TYPE="LVM2_member"为逻辑卷
4.将卷组分出空间:
lvcreate -n name (-l个数 -L容量 100%FREE将所有空间都用光) 物理卷组名字
5.创建文件系统
mkfs.xfs (dev/vg0 物理卷名/逻辑卷名)
6.挂载:
mount /dev/vg0/mysql(逻辑卷路径) /data/mysql(挂载点)
6.5 永久挂载
vim /etc/fstab
写入blkid中逻辑卷的UUID /data/mysql xfs defaults 0 0
试着在文件夹中建数据:
cd /data/mysql/ dd if=/dev/zero of=f1 bs=1M count=1024
在线扩展逻辑卷(处于挂载状态可以直接扩展)
lvextend -l +PE个数/+100%FREE -L +容量 /dev/vg0/mysql
-
扩展逻辑卷:
xfs_growfs /data/mysql/(挂载点)
扩展ext文件系统:resize2fs /dev/vg0/mysql(逻辑卷路径)
合并成一条: lvextend -L +1G -r /dev/vg0/mysql -
缩减逻辑卷(必须离线缩减) xfs不能缩减
1.取消挂载 umount 逻辑卷路径
2.缩减文件系统:
2.1 e2fsck -f /dev/vg0/log (缩减到1G) 2.2 resize2fs /dev/vg0/log 1G 检查文件系统完整性
3.缩减逻辑卷:
lvreduce -L 1G /dev/vg0/log(缩减前先给文件做备份) 4.挂载 mount
5.df -hT (T显示type类型)