Linux磁盘管理

1. linux 磁盘管理常用命令

2. df 命令

1. 概述

df 命令用于显示磁盘分区上的可使用磁盘空间, 默认显示单位为KB, 可以利用该命令来获取磁盘占用了多少空间,目前还剩多少空间信息。

2. 语法

df [OPTIONS] FILE

3. 选项
-a:     --all 包含全部的文件系统
--block-size=<区块大小>   以指定的区块大小来显示区块数目
-h:     --human0readable 以 易读方式显示文件size
-H:     --si 与 -h 参数相同, 但是换算是以 1000Bytes 而非 1024bytes
-i:     --inodes 显示 inode 信息
-k:     --kilobytes 指定区块大小为 1024 字节
-l:     --local 仅显示本地端的文件系统
-m:     --megabytes 指定本地区块大小为 1m
--no-sync:  在取得磁盘的使用信息, 不执行 sync指令, 此为预设值
-t <文件系统类型>     --type=<文件类型> 不要显示指定文件系统类型的磁盘信息
-T      --print-type:   显示文件系统的类型
-x <文件系统类型>   --exclude-type=<文件系统类型> 不要显示指定文件系统类型的磁盘信息
--help:     帮助信息
--version:  显示版本信息
4. 示例
  • 查看硬盘信息

3. du 命令

1. 概述

du命令也是查看使用空间, 但是df df命令是用来查看du命令是对文件和目录磁盘使用空间的查看.

2. 语法

du [OPTIONS] FILE

3. 选项
-a:     -all, 显示目录中个别文件的大小
-b:     --bytes 显示目录或文件大小, 以 byte 为单位
-c:     --total 除了显示个别目录或文件大小, 同时也显示所有文件或目录的总和.
-k:     --kilobytes 以 KB 为单位输出
-m:     --megabytes 以 MB 为单位输出
-s:     --summarize 仅显示总计, 
-h:     --human-readable 以K,M,G 为单位输出
-x:     --one-file-xystem 以一开始处理时的问价那系统为准, 如果遇到不同的文件系统目前则略过
-L <符号链接>:     --derfernce <符号链接> 显示选择中所指定符号链接的源文件大小
-S:     --separate-sirs 显示个别目录的大小时, 并不含其子目录的大小
-X <文件>:    --exclude-from=<文件> 在文件指定目录或文件
--exclude=<目录或文件>:  略过指定目录或文件
-D:     --derfernce-args 显示指定符号链接的源文件
-H:     -si 产生书相同, 以K, M, G 换算的单位
-l:     --count-links 重复计算硬件链接的文件
4. 示例
  1. 获取 /tmp 目录大小

  1. 查看指定文件大小

2. 磁盘分区

2.1 不重启添加硬盘

新添加一块硬盘

查看是否存在硬盘

2.1.1 SCSI 硬盘扫描机制介绍

linux 系统体用了多种机制重新扫描SCSI 总线, 并将SCSI设备添加到系统中, 2.6 内核中, LUN 扫描机制, Linux 目前缺乏 drvconfig 或 ioscan 那样允许动态SCSI 通道重配命令. 磁盘进行重新配置的方式包括:

  • 重启系统
  • 卸载并重新加载HBA驱动模块
  • echo /proc SCSI 设备列表
  • 通过 /sys 下属性设置运行 SCSI 扫描
  • 通过HBA 厂商脚本运行SCSI 扫描
  1. 重启系统:
重启主机是检测新添加硬盘设备的可靠方式, 在所有I/O 停止之后重启主机, 同时静态或以模块方式连接磁盘驱动, 系统初始化时会扫描PCI 总线, 因此瓜子啊其上 SCSI host adaper 会被扫描到, 并生成一个 PCI device, 之后扫描软件会为PCI device 加载相应的驱动程序, 加载SCSI host 驱动时, 其探测函数会初始化SCSI host, 注册中断处理函数, 最后调用 scsi_scan_host 函数扫描scsi host adapter 所管理的所有scsi 总线.
  1. 重新加载HBA 驱动:
通常情况下, HBA 驱动会在系统中以模块形式加载, 从而允许驱动被写在并重新加载, 该过程中 SCSI 扫描函数得以调用, 通常, 在写在HBA 驱动之前, SCSI 设备的所有I/O 都应该停止, 卸载文件系统, 多数路径服务应用也需要停止, 如果有代理或 HBA 应用帮助模块, 也应当中止.

命令示例:

# 卸载驱动
modprobe -r lpfc
# 加载驱动
modprobe lpfc 

# /proc 下SCSI 扫描中 /proc系统文件提供了可用 SCSI 设备的列表, 如果系统中SCSI 设备重新配置, 那么 所欲偶浙西改变通过 echo /proc 接口反映SCSI 添加一个设备, 主机, channel, target ID, 以及磁盘设备的LUN 编号会被添加到 /proc/scsi/ 需要指定 scsi编号.
# 示例:
echo "scsi add-single-device 0 1 2 3" > /proc/scsi/scsi
# 0:    主机
# 1:    channel ID
# 2:    target ID
# 3:    LUN 编号

# 添加第一块scsi硬盘
echo "scsi add-single-device 0 0 1 0" > /proc/scsi/scsi

  1. /sys 下 SCSI 扫描
# 2.6 内核中, HBA 驱动将 SCAN 功能导出值 /sys目录下, 可用来重新扫描该接口下的 SCSI 磁盘设备, 
cd /sys/class/scsi_host/host4
ls -an scan 
echo '- - -' > scan

# '- - -' 代表 channel, target 和LUN 编号, 以上命令会导致 hba4 下所有 channel, target 以及可见LUN 被扫描.

RHEL5+:
echo '- - -' > /sys/class/scsi_host/host0/scan

2.2 fdisk 硬盘分区

1. 概述

fdisk 命令用于查看硬盘使用情况, 也可以用于对硬盘分区, 采用的是传统的交互式操作页面.

2. 语法

fdisk [OPTIONS] [DEVICE]

3. 选项

-b <分区大小>:  指定每个分区的大小
-l:         列出硬盘设备的分区表状况
-s <分区号>:   将制定的分区大小输出到标准输出, 单位为区块
-u:         搭配 -l 参数使用, 将会使用分区块数目取代柱面数目, 来表示每个分区的起始地址.
-v:         显示版本信息

4. 交互命令

fdisk 命令在对硬盘进行分区操作时, 需要使用交互命令.

a:      设置可引导标记, (活动分区/引导分区 之间的切换)
b:      编辑BSD 磁盘标签
c:      设置DOS 操作系统兼容标记, (兼容/不兼容 之间的切换)
d:      删除一个分区
l:      显示可以使用的分区类型
m:      输出帮助信息
n:      创建一个新的分区
    p:      创建一新的主分区, 
    e:      创建扩展分区

o:      创建一个新的空白 DOS 分区表
p:      显示 当前的分区表
q:      不保存退出
s:      创建一个新的 Sun 硬盘标记
t:      修改分区的 类型ID(可以使用 l查看所有的分区类型)
u:      改变显示输入单位
v:      验证分区表
w:      保存分区信息到硬盘并 退出
x:      额外功能(高级功能)

5. 示例

  1. 为新添加的硬盘(sdb) 划分分区, 一个8G 主分区, 一个5G 扩展分区, 从扩展分区分出一个5G分区 ,剩余部分划分为 逻辑卷. 创建一个普通分区:

创建一个扩展分区:

创建一个lvm:

保存并退出: 输入 w 命令, 保存并退出, 输入 fdisk -l 命令查看是否成功.

2.3 parted 硬盘分区

1. 概述

很多时候企业内部使用的硬盘(raid) 都比较大, 常常超过2t 需要使用gpt 分区, 这时候fdisk 不能使用了, 就需要使用 parted , parted 命令是由GUN 组织开发的一款强大的磁盘分区和分区调整工具, 与fdisk 不同的是, 它支持 调整分区大小, 他没有构建成向 fdisk 那样的多分区类型, 但是可以处理常见分区, 例如: ext2, ext3, fat16, fat32, NTFS, JFS, XFS, UFS, HFS, 以及 SWAP. parted 有交互是操作 操作方式fdisk 类似, 和非交互式操作.

2. 语法

parted [OPTIONS] DEVICE [COMMAND]

3. 选项

-h:     显示帮助信息
-i:     交互模式
-s:     脚本模式, 不提示用户
-v:     显示版本号

4. 命令

cp <FROM-DEVICE>:       将文件系统复制到另一个分区上
help <COMMAND>:         打印帮助信息, 如果指定命令 则打印对应命令的帮助信息
mklabel <label>:        创建新的磁盘标签(分区表)
mkfs MINOR <FileType>:  在 MINOR 上创建文件类型.
mkpart 分区类型 <文件系统类型> 起点 终点:     创建一个分区, 需要指定分区类型, 可以指定文件系统
move MINOR 名称:          将编号 MINOR 的分区命名为 '新的名称'
print [MINOR]:            显示分区表, 或者分区
quit:                   退出交互模式
rescue 起点 终点:        挽救 '起点', '终点' 的遗失的分区
resize MINOR 起点 终点:     改变位于编号诶 MNOR 的分区中文件系统的大小
rm MINOR:               删除编号为 MINOR 的分区
select 设备:              选择需要编辑的设备
set MINOR 标志 状态:        改变 MINOR 的分区标志

5. 示例

创建一个普通的分区:

创建一个LVM 分区:

查看分区:

1. LVM 概念以及使用

1. LVM 是什么

LVM 是动态卷管理, 可以将多个硬盘和硬盘分区做成一个逻辑卷, 并把这个逻辑卷作为一个整体来管理, 动态对分区进行扩缩空间大小.安全方便.

2. LVM 的四个概念

  • PE(Physical Extend) 物理拓展
  • PV(Physical Volume) 物理卷
  • VG(Volume Group) 卷组
  • LV(Logical Volume) 逻辑卷
  1. 不同格式的磁盘系统, 都可以被格式化为PV
  2. 物理卷磁盘需要被格式化为PV, 空间被划分为一个个PE,
  3. 不同PV 加入到同一个VG中, 不同PV 的PE 全部进入VG 的PE 池中,
  4. LV 基于PE 创建, 大小为PE的整数倍, 组成LV 的PE 可能来自于不同的物理磁盘
  5. LV 可以直接格式化使用
  6. LV 的扩展就是 增加/减少 LV的PE数量, 其过程不会丢失原始数据

LVM 创建以及管理的顺序: pv -> vg -> lv 如果需要删除操作, 需要反方向按顺序操作.

3. LVM的管理

  1. 查看:
# 查看pv
pvs
pvdisplay

# 查看vg
vgs
vgdisplay

# 查看lv
lvs
lvdisplay
  1. 创建/添加操作
# 创建 pv
# 将设备创建为pv, 仅仅是将设备划分出PE块, 所以PV没有扩建
pvcreate DEVICE
# 删除 pv
pvremove DEVICE  

# 创建 vg
vgcreate VG_NAME DEVICE
# 扩容 vg
vgextend  VG_NAME  NEW_PV
# 删除 vg
vgremove VG_NAME


# 创建 lv
lvcreate -n NAME -L SIZE PATH/LV_NAME
# 扩容 lv
lvextend -L +SIZE PATH/LV_NAME
# 缩小 lv
lvreduce -L -SIZE PATH/LV_NAME
# 删除 lv 
lvremove VG_NAME
  1. 格式化和挂载
# 格式化磁盘
mkfs.ext4 PATH/LV_NAME

# 刷新已挂载分区的容量
resize2fs PATH

4. 示例

  1. 创建 pv

  1. 创建 vg

  1. 创建 lv

  1. 格式化和挂载

  1. 扩展 vg 先创建pv

扩容 vg

  1. 扩容lv

  1. 卸载分区, 删除lv, 删除vg, 删除pv

END

转载于:https://my.oschina.net/nikoF/blog/2252087

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值