加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

LINUX磁盘管理

发布时间:2022-09-21 15:20:00 所属栏目:Linux 来源:
导读:  inux 系统正常启动过程(以硬盘启动)

  加电—>硬件检测(POST)—>读取硬盘的MBR—>运行boot loader加载内核

  扇区:sector 磁道可以划分多个扇区,通常扇区大小固定为512字节
  inux 系统正常启动过程(以硬盘启动)
 
  加电—>硬件检测(POST)—>读取硬盘的MBR—>运行boot loader加载内核
 
  扇区:sector 磁道可以划分多个扇区,通常扇区大小固定为512字节
 
  MBR:主引导记录,位于磁盘的0磁道0扇区(sector)
 
  MBR 的前446 字节用于放boot loader(引导加载器)程序,后面64字节用来标示硬盘分区,每16字节标示一个分区,故一块硬盘只有4个主分区,最后2字节用于整体程序的封装码。
 
  磁盘管理
 
  查看本系统上的已经被识别的所有磁盘以及分区对应列表
 
  cat /proc/partitions
 
  fdisk –l
 
  # fdisk -l
 
  Disk /dev/sda: 171.7 GB, 171798691840 bytes
 
  255 heads, 63 sectors/track, 20886 cylinders
 
  Units = cylinders of 16065 * 512 = 8225280 bytes
 
  Device Boot Start End Blocks Id System
 
  /dev/sda1 * 1 13 104391 83 Linux
 
  /dev/sda2 14 5235 41945715 8e Linux LVM
 
  /dev/sda3 5236 5300 522112+ 82 Linux swap / Solaris
 
  /dev/sda4 5301 20886 125194545 5 Extended
 
  /dev/sda5 5301 5787 3911796 83 Linux
 
  Disk /dev/sdb: 42.9 GB, 42949672960 bytes
 
  255 heads, 63 sectors/track, 5221 cylinders
 
  Units = cylinders of 16065 * 512 = 8225280 bytes
 
  Disk /dev/sdb doesn't contain a valid partition table
 
  fdisk
 
  fdisk /dev/sda 对磁盘设备进行分区
 
  d delete a partition 删除一个分区
 
  l list known partition types 列出已知分区的类型
 
  m print this menu
 
  n add a new partition 添加
 
  p print the partition table显示当前的磁盘分区情况
 
  q quit without saving changes 退出不保存
 
  s create a new empty Sun disklabel
 
  t change a partition's system id 改变一个分区的类型
 
  82 Linux swap / So
 
  83 Linux
 
  5 Extended
 
  8e Linux LVM
 
  w write table to disk and exit保存退出
 
  分区创建时候注意主分区和扩展分区
 
  分区创建完成后此时是一个裸分区,只有格式化完好才能使用,也不能(指的是在一块已经使用的硬盘剩余空间下操作时,信硬盘可以识别)被系统立即识别,需要用命令partprobe
 
  # fdisk /dev/sdb
 
  Command (m for help): n
 
  Command action
 
  e extended
 
  p primary partition (1-4)
 
  p
 
  Partition number (1-4):1
 
  First cylinder (1-5221, default 1): 回车选择默认
 
  Using default value 1
 
  Last cylinder or +size or +sizeM or +sizeK (1-5221, default 5221): +10G(自己只大小)
 
  Command (m for help): p
 
  Disk /dev/sdb: 42.9 GB, 42949672960 bytes
 
  255 heads, 63 sectors/track, 5221 cylinders
 
  Units = cylinders of 16065 * 512 = 8225280 bytes
 
  Device Boot Start End Blocks Id System
 
  /dev/sdb1 1 1217 9775521 83 Linux
 
  Command (m for help): w
 
  The partition table has been altered!
 
  Calling ioctl() to re-read partition table.
 
  Syncing disks.
 
  创建文件系统 (即格式化)
 
  mkfs -t fstype /dev/sda5
 
  mkfs -t fstype=mkfs.ext3
 
  mkfs –t ext2 =mke2fs
 
  mke2fs
 
  -j 创建日志文件系统
 
  -L 创建卷标通常是字符串(e2label /dev/sda5 不删数据也能改卷标
 
  e2lable /dec/sda5 NEWLABLE)
 
  -b 指定块的大小{1024|2048|4096}单位字节
 
  -i 指定磁盘块的比例 byte/inode ratio 默认128
 
  -N 直接指定inode ratio的个数
 
  -m 默认为5 指的是磁盘大小的5% 预留给管理员
 
  -c 创建文件系统时候 检查磁盘是不是有坏道
 
  tune2fs 用来调整mke2fs
 
  -j 把 ext2—> ext3
 
  -l 列出一个分区的常见的文件信息
 
  -L 创建卷标
 
  -i指文件系统质检时间 N【d|m|w】
 
  -c 指文件系统在挂着卸载都少次后开始自检(-1或者0表示关闭自检)
 
  -m 在格式化完成后调整预留百分比
 
  -o 设置此文件系统的默认挂载选项
 
  挂载mount 不加选项时候 能显示所有挂载上的文件及其挂载路径
 
  mount -t 必须指定被挂在的设备的文件系统类型,很多时候我们都省略了,这是因为mount在挂载时候自动调用了blkid
 
  -n
 
  mount –a 可以自动挂载/etc/fstab
 
  -o rw,ro,exec (如果上面有二进制文件话默认执行),auto,nouser(禁止普通用户挂载此设备),async (异步数据写入)
 
  mount -o loop /root/rhci.iso /mntcdrom (这挂载是镜像文件 当成本地环回设备使用)
 
  mount –o remount,acl /dev/sda8 /mnt
 
  swap –a 启用所有的交换分区用法同mount –a
 
  卸载
 
  umount
 
  ejeck 可以使光盘自动卸载并弹出
 
  如果在卸载时候发现有别的用户在使用该挂载目录,此时可以用fuser查看,并将其强制离开。
 
  fuser –v /mount_point
 
  fuser –km /mount_point
 
  设备自动挂载
 
  自动挂载{开机自动挂载(/etc/fstab),按需自动挂载(autofs 工具实现)}
 
  /etc/fstab
 
  这个文件包涵六个字段
 
  /dev/vol0/root / ext3 defaults 1 1
 
  /dev/vol0/home /home ext3 defaults 1 2
 
  LABEL=/boot /boot ext3 defaults 1 2
 
  tmpfs /dev/shm tmpfs defaults 0 0
 
  devpts /dev/pts devpts gid=5,mode=620 0 0
 
  sysfs /sys sysfs defaults 0 0
 
  proc /proc proc defaults 0 0
 
  LABEL=SWAP-sda3 swap swap defaults 0 0
 
  每行从左到右分别标示
 
  1 挂载的设备名
 
  2 挂载点
 
  3 文件系统类型
 
  4 挂载选项 defaults,acl,gid,mode
 
  5 (转储频率)备份的频率0不备份,1每天备份一次,2每隔一天备份一次
 
  6 文件自检次序0-9 0 从不自检,开机自检1-9按次序
 
  对于挂载的设备名从上面的例子可以看出有三种方法:
 
  设备名
 
  卷标
 
  UUID
 
  能查看卷标的命令有 :e2lable /dev/device
 
  blkid
 
  tune2fs –l
 
  dumpe2fs /dev/device
 
  交换分区
 
  mkswap /dev/sda9
 
  交换分区不用挂载就能使用 swapon /dev/sda9 关闭 swapoff –s /dev/sda3
 
  swapon –s 查看虚拟内存
 
  RAID:
 
  独立冗余磁盘阵列
 
  RAID技术可以通过硬件和软件两种方式实现
 
  硬件:RAID卡
 
  软件:在内核当中附加类似md的软设备驱动来实现软raid
 
  linux下软raid的级别(表明磁盘的不同连接方式)
 
  0:高读写性,不提过冗余,出故障的概率大大增加(用做swap分区,做临时分区)
 
  1:写入速度慢,读取速度快;高冗余性。
 
  4:串联3块硬盘,一块盘转用奇偶效验码存储。将数据条块化并分布于不同的磁盘上,但条块单位为块或记录。RAID 4使用一块磁盘作为奇偶校验盘,每次写操作都需要访问奇偶盘,这时奇偶校验盘会成为写操作的瓶颈,因此RAID 4在商业环境中也很少使用。
 
  5:RAID 5不单独指定的奇偶盘Linux 磁盘管理,而是在所有磁盘上交叉地存取数据及奇偶校验信息。在RAID 5上,读/写指针可同时对阵列设备进行操作,提供了更高的数据流量。
 
  6:与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。
 
  10:
 
  raid 管理软件mdadm.i386 mdadm 模式化工具
 
  装配模式: -A
 
  创建模式
 
  -C /dev/mdo
 
  -a yes –l 指定级别 –n 个数
 
  -x 指定空闲盘
 
  管理模式 :只对有冗余的磁盘有用
 
  -f 模拟磁盘故障
 
  -r 移除一块磁盘
 
  -S 停止raid
 
  -AS 启动raid
 
  监控模式:
 
  cat /proc/mdstat监控工作状况
 
  LVM
 
  LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
 
  磁盘分区、卷组、逻辑卷和文件系统之间的逻辑关系的示意图
 
  最下面的是物理卷(pv physical volume )
 
  物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
 
  卷组(vg Volume Group)
 
  LVM卷组类似于非LVM系统中的物理硬盘, 其由物理卷组成。 可以在卷组上创建一个或多个 “LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
 
  逻辑卷:(lv logical volume)
 
  LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
 
  PE(physical extent)
 
  每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
 
  LE(logical extent)
 
  逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
 
  创建和管理LVM
 
  1. 创建LVM分区时指定其分区类型为8e
 
  2.创建物理卷 pvcreate
 
  # pvcreate /dev//sdb{5,6}
 
  Physical volume "/dev//sdb5" successfully created
 
  Physical volume "/dev//sdb6" successfully created
 
  3. 创建卷组 vgcreate
 
  # vgcreate myvg /dev/sdb5 /dev/sdb6
 
  /dev/cdrom: open failed: Read-only file system
 
  /dev/cdrom: open failed: Read-only file system
 
  Attempt to close device '/dev/cdrom' which is not open.
 
  Volume group "myvg" successfully created
 
  激活卷组:vgchange –a y myvg
 
  4. 创建逻辑卷 lvcreate
 
  lvcreate –L 指定大小
 
  -l指定盘区块
 
  -n 命名
 
  # lvcreate -L 1G -n mydata myvg
 
  Logical volume "mydata" created
 
  # mke2fs /dev/myvg/mydata
 
  # mkdir /lvm
 
  #mount /dev/myvg/mydata /lvm/
 
  扩展步骤
 
  umount /lvm
 
  e2fsck -f /dev/myvg/mydata
 
  lvextend –L [+]1G /dev/myvg/mydate 有+号标示增加1G ,没有+号标示增加到1G 改物理边界
 
  resize2fs –p /dev/myvg/mydate 改逻辑边界
 
  缩减步骤
 
  umount /lvm
 
  e2fsck –f /dev/myvg/mydata
 
  resize2fs /dev/myvg/mydata 2G
 
  lvreduce –L 2G /dev/myvg/mydata
 
  从新挂载,查询里面的数据是否正常
 
  缩减带有数据的卷组
 
  先要把这个卷组的数据移动到别的pv上
 
  pvmove /dev/sda6
 
  vgreduce myvg /dev/sda6
 

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!