Linux磁盘管理实操

Linux磁盘管理实操

1、创建一个10G分区,并格式为ext4文件系统。

  • 先使用fdisk工具创建一个10G的新分区。使用fdisk打开要创建磁盘分区的物理设备fdisk /dev/sdb,然后使用n指令创建新的分区,分区类型选此处选择为主分区,第一个柱面使用默认的1,最后的柱面,使用+10G这种表示方式,表示创建的分区大小为10G。

    Linux磁盘管理实操


    Linux磁盘管理实操

  • 创建后可以使用p指令,查看刚才创建的分区,名为/dev/sdb1

    Linux磁盘管理实操

  • 然后使用w指令,保存刚才所做的修改。

    Linux磁盘管理实操

    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA,默认挂载属性包含acl。
    使用mke2fs指令完成文件系统的创建,-b选项指定块大小,-m指定预留空间百分比,-L指定卷标。操作过程如下:

    Linux磁盘管理实操


    使用tune2fs指令可以设置卷的默认挂载属性,操作方式如下:

    > [root@bogon ~]# tune2fs -o acl /dev/sdb1

需要注意的是:虽然指定的默认挂载属性包含acl,但在使用mount指令或者查看/etc/mtab文件时看不到acl这一属性,此时可以使用指令dumpe2fs -h /dev/sdb1 来查看,其中

Default mount options:    acl
即表示acl属性被启用了。

(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳。
使用mount指令完成文件系统与目录的挂载操作,只有在完成这一步骤以后,物理磁盘空间才能为系统所用。使用-o选项指定noexec禁止程序自动运行,noatime指定不更新文件的访问时间戳。操作过程如下:

Linux磁盘管理实操

 

2、创建一个大小为1G的swap分区,并创建好文件系统然后启用。  

  • 先使用fdisk工具创建一个1G的分区并指定分区类型为swap。操作过程如下:

    Linux磁盘管理实操

  • 使用mkswap指令创建swap分区
    [root@bogon ~]# mkswap /dev/sdb2

  • 使用swapon指令启用新的swap分区
    [root@bogon ~]# swapon /dev/sdb2

  • 使用blkid指令可以查看之前挂载的两个新分区(/dev/sdb1和/dev/sdb2)。

    Linux磁盘管理实操

3、写一个脚本:获取当前系统上的所有磁盘设备;并显示每个磁盘设备上每个分区的空间使用信息

Linux磁盘管理实操

 

4、总结RAID的各个级别及其组合方式和性能的不同。  

    RAID-0:
        读出性能提升
        可用空间:N*min(S1,S2,...)
        无容错能力
        最小磁盘数:2

    RAID-1:(同一个数据存两份)
        读性能提升,写性能略有下降
        可用空间:1*min(S1,S2,...)
        有冗余能力
        最少磁盘数:2

    RAID-5:
        读、写性能提升
        可用空间:(N-1)*min(S1,S2,...)
        有容错能力:1块磁盘
        最少磁盘数:3

    RAID-6:
        读、写性能提升
        可用空间:(N-2)*min(S1,S2,...)
        有容错能力:2块磁盘
        最少磁盘数:4

混合类型:
    RAID-10:先组建RAID-0再将RAID-0组建为RAID-1
        读、写性能提升
        可用空间:N*min(S1,S2,...)/2
        有容错能力:每组镜像最多只能块一块
        最少磁盘数:4

    RAID-01:先组建RAID-1再将RAID-1组建为RAID-0

    JBOD:Just a Bunch Of Disks
        功能:将多块磁盘的空间合并一个大的连续空间使用
        可用空间:sum(S1,S2,...)

5、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k。
创建RAID1最少需要2块磁盘且它是同一份数据保存两份(在两块磁盘上都有),可用空间里取决于N块磁盘中容量最小的那块。这里还要求有一个空闲盘,因此需要使用3块磁盘组建RAID1。在Linux系统中创建软RAID的指令为:mdadm,软raid可以基于磁盘分区来实现,即将不同的分区组成RAID组,但如果是将同一物理磁盘的不同分区组成RAID实际意义并不大,当一块物理磁盘故障后,很可能整个RAID组都一同不可用了。所以此处我使用的是给虚拟机添加多块(虚拟)磁盘来实现的,每块磁盘设定为10G大小。具体操作指令为:
mdadm -C /dev/md0 -n 2 -l 1 -c 128 -x 1 /dev/sd{c,d,e}
-C 称为创建模式,表示后面的指令是用来创建指定的RAID
-n 2 指定使用2个块设备来创建此RAID,RAID1最少需要2块磁盘,-n表示在这一RAID组中active的块设备数量
-l 1 指定RAID的级别,1表示RAID1
-c 128 指定CHUNK的大小为128,单位为KB,默认大小为512K
-x 1 指定作为空闲盘的数量

创建过程如下:  
[root@bogon ~]# mdadm -C /dev/md0 -n 2 -l 1 -c 128 -x 1 /dev/sd{c,d,e}   
mdadm: Note: this array has metadata at the start and    
may not be suitable as a boot device.  If you plan to  
store '/boot' on this device please ensure that  
your boot-loader understands md/v1.x metadata, or use  
--metadata=0.90  
Continue creating array? y  
mdadm: Defaulting to version 1.2 metadata     
mdadm: array /dev/md0 started.  

创建完成后使用cat /proc/mdstat或mdadm -D /dev/md0进行查看其详细状态信息:    
[root@bogon ~]# cat /proc/mdstat  
Personalities : [raid1]  #RAID级别为RAID1  
md0 : active raid1 sde[2](S) sdd[1] sdc[0]  
      10477568 blocks super 1.2 [2/2] [UU]  

unused devices: <none>  
[root@bogon ~]# mdadm -D /dev/md0  #查看更为详细的RAID信息  
/dev/md0:  
        Version : 1.2  
  Creation Time : Sun Dec 11 19:28:53 2016  
     Raid Level : raid1  
     Array Size : 10477568 (9.99 GiB 10.73 GB)  
  Used Dev Size : 10477568 (9.99 GiB 10.73 GB)  
   Raid Devices : 2  
  Total Devices : 3  
    Persistence : Superblock is persistent  

    Update Time : Sun Dec 11 19:29:47 2016  
          State : clean   
   Active Devices : 2  
  Working Devices : 3  
  Failed Devices : 0  
    Spare Devices : 1  

           Name : bogon:0  (local to host bogon)  
           UUID : 2beef9f4:5631d26b:078cdccc:ef2fe348  
         Events : 17  

    Number   Major   Minor   RaidDevice State  
       0       8       32        0      active sync   /dev/sdc  
       1       8       48        1      active sync   /dev/sdd  

       2       8       64        -      spare   /dev/sde

6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能
RAID5要求的最少磁盘数为3块,可用空间为(N-1)*min(S1,S2,S3…),要创建一个大小为4G的RAID5,最小的磁盘空间可以设置为2G。但实际生产环境中不大会有这么小的磁盘了。操作步骤如下所示:

  • 使用fdisk创建3个大小为2G的分区:

[root@bogon ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9dca1ea0

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux
/dev/sdb2             263         524     2104515   83  Linux
/dev/sdb3             525         786     2104515   83  Linux
  • 使用mdadm创建chunk为256k的RAID5磁盘组
    mdadm -C /dev/md1 -n 3 -l 5 -c 256 /dev/sdb{1,2,3}  

  • 查看创建的RAID5的状态:

[root@bogon ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md1 : active raid5 sdb3[3] sdb2[1] sdb1[0]
      4204544 blocks super 1.2 level 5, 256k chunk, algorithm 2 [3/3] [UUU]

md0 : active raid1 sde[2](S) sdd[1] sdc[0]
      10477568 blocks super 1.2 [2/2] [UU]

unused devices: <none>

[root@bogon ~]# mdadm -D /dev/md1
/dev/md1:
        Version : 1.2
  Creation Time : Sun Dec 11 22:28:39 2016
     Raid Level : raid5
     Array Size : 4204544 (4.01 GiB 4.31 GB)
  Used Dev Size : 2102272 (2.00 GiB 2.15 GB)
  • 使用mke2fs指令将此RAID5设备格式化成ext4文件系统:

[root@bogon ~]# mke2fs -t mkfs.ext4 /dev/md1

  • 要实现开机自动挂载功能必须修改/etc/fstab文件,将刚创建的RAID5设备挂载上去。
    使用vim编辑器,在/etc/fstab文件中添加如下一行:

    Linux磁盘管理实操


    Linux磁盘管理实操

  • 使用mount -a指令将/etc/fstab中的设备全部挂载上。

    Linux磁盘管理实操

7、创建一个由至少两个物理卷组成的大小为20G的卷组;要求,PE大小为8M;而在卷组中创建一个大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl。
– 先创建大小为20G的物理卷PV,物理卷可以是磁盘分区也可以是整个磁盘,整个磁盘作为PV时,甚至可以直接创建卷组VG,为满足需求将每块磁盘大小设置为10G。创建物理卷使用指令pvcreate
[root@bogon ~]# pvcreate /dev/sdc /dev/sdd  

  • 再创建VG,使用指令vgcreate-s选项指定PE的大小。

    [root@bogon ~]# vgcreate myvg -s 8M /dev/sdc /dev/sdd
    Physical volume "/dev/sdc" successfully created
    Physical volume "/dev/sdd" successfully created
    Volume group "myvg" successfully created

    Linux磁盘管理实操

     

    VG创建好后的效果

  • 接着创建LV,使用指令lvcreate-L指令LV的大小,-n指定LV的名称。

    [root@bogon ~]# lvcreate -L 5G -n mylv1 myvg
    Logical volume "mylv1" created.
  • 然后使用mke2fs指令将LV格式化成ext4文件系统 。

[root@bogon ~]# mke2fs -t ext4 /dev/myvg/mylv1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Linux磁盘管理实操

 

LV创建完后的效果。

  • 使用编辑/etc/fstab文件,以便于系统开机可以自动挂载mylv1。
    Linux磁盘管理实操

    使用指令mount -a执行挂载操作
    [root@bogon ~]# mount -a
    验证挂载结果

    Linux磁盘管理实操

     

8、新建用户magedu,其家目录为/users/magedu,而后su切换至此用户,复制多个文件至家目录。  

[root@bogon ~]# useradd -d /users/magedu magedu
[root@bogon ~]# !grep
grep "magedu" /etc/passwd
magedu:x:501:501::/users/magedu:/bin/bash
[root@bogon ~]# su - magedu
[magedu@bogon ~]$ whoami
magedu
[magedu@bogon ~]$ pwd
/users/magedu
[magedu@bogon ~]$ cp /etc/*.conf .
[magedu@bogon ~]$ ll
total 216
-rw-r--r--. 1 magedu magedu   148 Dec 12 21:55 asound.conf
-rw-r--r--. 1 magedu magedu 13034 Dec 12 21:55 autofs.conf
-rw-r--r--. 1 magedu magedu  1780 Dec 12 21:55 cas.conf
-rw-r--r--. 1 magedu magedu 21214 Dec 12 21:55 dnsmasq.conf
-rw-r--r--. 1 magedu magedu   519 Dec 12 21:55 dracut.conf
-rw-r--r--. 1 magedu magedu    20 Dec 12 21:55 fprintd.conf
.......(略)

9、扩展mylv1至9G,确保扩展完成后原有数据完全可用。
可以使用lvextend指令完成对LV大小的扩展,使用-L选项指定需要扩展至的那个大小。

[root@bogon ~]#  lvextend -L 9G -n /dev/mapper/myvg-mylv1
  Size of logical volume myvg/mylv1 changed from 5.00 GiB (640 extents) to 9.00 GiB (1152 extents).
  Logical volume mylv1 successfully resized.
[root@bogon ~]#resize2fs /dev/myvg/mylv1  #对LV大小进行在线扩展,相当于重新挂载
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/mylv1 is mounted on /users; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/myvg/mylv1 to 2359296 (4k) blocks.
The filesystem on /dev/myvg/mylv1 is now 2359296 blocks long.

Linux磁盘管理实操

 

扩展后的LV空间大小

为确保LV中的数据依然可用,选择对扩展前后文件的md5值进行对比,发现它们的md5值并没有改变,所以原有数据依然可用。

Linux磁盘管理实操

 

LV扩展前

Linux磁盘管理实操

 

LV扩展后

10、缩减mylv1至7G,确保缩减完成后原有数据完全可用。
缩减逻辑卷一般先对逻辑卷进行umount操作,具体步骤如下所示:

[root@bogon ~]# umount /users
[root@bogon ~]# e2fsck -f /dev/mapper/myvg-mylv1
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/myvg-mylv1: 62/589824 files (0.0% non-contiguous), 72734/2359296 blocks
[root@bogon ~]# resize2fs /dev/mapper/myvg-mylv1 7G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/myvg-mylv1 to 1835008 (4k) blocks.
The filesystem on /dev/mapper/myvg-mylv1 is now 1835008 blocks long.
[root@bogon ~]# lvreduce -L 7G /dev/mapper/myvg-mylv1   #缩减LV的物理边界至7G大小
 WARNING: Reducing active logical volume to 7.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce myvg/mylv1? [y/n]: y
  Size of logical volume myvg/mylv1 changed from 9.00 GiB (1152 extents) to 7.00 GiB (896 extents).
  Logical volume mylv1 successfully resized.
[root@bogon ~]# mount -a

验证缩减后的效果:

Linux磁盘管理实操


验证LV的大小调整是否生效,还可以使用lvdisplay指令。

验证缩减后LV内的数据依然可用:

Linux磁盘管理实操

 

11、对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息。对LV创建快照,使用lvcreate指令结合-s选项实现 。具体操作过程如下所示:

[root@bogon users]# lvcreate -s -L 30M -n snaplv -p r /dev/mapper/myvg-mylv1
  Rounding up size to full physical extent 32.00 MiB
  Logical volume "snaplv" created.
[root@bogon users]# mount /dev/mapper/myvg-snaplv /mnt #将创建好的快照卷挂载到/mnt目录下
mount: block device /dev/mapper/myvg-snaplv is write-protected, mounting read-only

查看/mnt目录下各文件原有属主属组信息未变。
Linux磁盘管理实操

/mnt目录下和/users目录下的文件信息对比

原创文章,作者:N24_lantian,如若转载,请注明出处:http://www.178linux.com/63504

(0)
上一篇 2016-12-13 00:20
下一篇 2016-12-13 00:52

相关推荐

  • 自制Linux系统

                          自制Linux系统 1、环境准备:         在centos6上添加一块新硬盘,并分区格式化。 &n…

    系统运维 2016-09-21
  • LVS管理平台使用手册(第一版)[原创]

     为了更好管理、维护LVS平台,本人基于Django+certmaster+func开发了一套管理平台,主要功能模块分为性能图表、数据中心、虚拟IP池、主机管理、监控模块等功能,基本上是按F5-LTM管理平台思路来设计,下面只要对这几大块功能进行说明。1、性能图表 功能说明:以小时、日、星期、月、年的图表展示LVS SERVER、VIP、SERVE…

    Linux干货 2015-03-28
  • 制作引导分区

      使用虚拟机制作一个可以引导启动的简单系统。方法如下:   一、制作两个分区     1、添加一块新的硬盘,新建两个分区,格式化并挂载到/mnt/boot和/mnt/sysroot目录中;虚拟机添加硬盘的操作很简单就不做演示了,要注意的是添加的硬盘最好选择成“将虚拟磁盘存储为单个个文件”,并为将文件名修改为容易识别的…

    Linux干货 2016-01-18
  • MySQL主从复制:半同步、异步

            MySQL主从复制:半同步、异步 前言 如何对MySQL进行扩展? MySQL Replication WorkFlow MySQL主从复制模式 实战演练 MySQL异步复制实现 MySQL半同步复制实现 实验中的思考 总结 mysql 前言 本篇我们介绍MySQ…

    Linux干货 2016-04-28
  • 小巧精悍——常见文本处理工具用法及技巧总结

    小巧精悍——常见文本处理工具用法及技巧总结 Linux最重要的哲学思想就是:一切皆文件。可见文件及文件操作在Linux当中是多么的重要。在Linux系统中我们也会经常用到各种文本文件处理的操作,熟练使用这些小巧精悍的文本处理工具,在关键时刻往往展现非凡的神奇功效。常见文本处理小工具:cat、hexdump、nl、less、head、tail、cut、tr、r…

    Linux干货 2016-11-05
  • 认识shell

    一、认识shell 什么是shell?shell为单词外壳的意思。那么这是谁的外壳?我们知道一个系统中实际工作的是那些硬件,cpu、内存、磁盘等。我们如何调用这些硬件为我们工作?实际上,硬件是由内核kernel控制的。我们可以通过kernel控制硬件,但我们不能直接和内核kernel交流。我们需要一个外壳,这个外壳就是shell来沟通kernel。何为she…

    Linux干货 2015-09-22

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-23 00:43

    赞~操作步骤很详细,能注意下整体的风格会更好,继续加油~