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.www58058.com/63504

(0)
N24_lantianN24_lantian
上一篇 2016-12-13
下一篇 2016-12-13

相關推薦

  • 日志收集工具EFK之fluent部署手稿

    Edit EFK fluent部署安裝 1. 環境介紹 Centos 6.5 64bit 2. 安裝 td-agent介紹 fluent 考慮到靈活可擴展性,使用Ruby編寫,部分功能考慮性能使用C語言編寫。普通用戶安裝操作Ruby daemon還是有一定難度的??紤]到flunt的上手難度, fluent專門發布了穩定發布包,就也是所謂的td-agent. …

    Linux干貨 2016-03-24
  • 正則表達式簡述

    正則表達式簡述 什么是正則表達式: 正則表達式,又稱正規表示法、常規表示法(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),計算機科學的一個概念。正則表達式使用單個字符串來描述、匹配一系列符合某個句法規則的字符串。在很多文本編輯器里,正則表達式通常被用來檢索、替換那些符合某個模式的文本。 正則表達式分類: 標準正…

    Linux干貨 2016-04-05
  • redis主從復制(3)— 復制超時

    1、repl-timeout前兩篇[1]關于redis主從復制的文章解釋了一些因為slave replication buffer或者replication backlog參數的錯誤配置(或者默認參數值)導致主從復制中斷的現象。redis里面的repl-timeout參數值也太小也將會導致復制不成功。top redis headaches for devop…

    Linux干貨 2016-04-05
  • Linux ansible 服務

                      Linux ansible 服務 Ansible:    運維工具的分類: agent:基于專用的agent程序完成管理功能,puppet, func, zabbix, … agentless:基于ss…

    系統運維 2016-11-19
  • rsyslog基于mysql的日志集中存儲,及loganalyzer日志分析工具的web配置

    Rsyslog是Linux系統自帶的一款強大的日志系統,在業務量不是很大的情況下,能夠滿足大部分客戶的日志分類搜集功能,是廣大運維同事進行系統監控、分析不可或缺的利器。而在運維自動化高速發展的今天,如果我們還要“人工”智能的去每一個服務器上查看系統日志就顯得太LOW了,并且,對我們來說也是一個不小的負擔。 基于此,我們就簡單的來介紹一下,rsyslog結合m…

    系統運維 2017-02-05
  • lvs 基本概念

    LVS(linux virtual machine) 的簡寫,是一個虛擬的服務器集群系統,主要用于4層負載均衡。 宗旨: 使用集群技術和Linux操作系統實現一個高性能、高可用的服務器. 很好的可伸縮性(Scalability) 很好的可靠性(Reliability),應該還是高可用吧 很好的可管理性(Manageability…

    Linux干貨 2015-09-14

評論列表(1條)

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

    贊~操作步驟很詳細,能注意下整體的風格會更好,繼續加油~

欧美性久久久久