分享

LINUX磁盘管理

 raymoon_sure 2014-04-22

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不单独指定的奇偶盘,而是在所有磁盘上交叉地存取数据及奇偶校验信息。在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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多