RAD介紹及實戰,LVM介紹及實戰,磁盤常見故障


目錄

一、RAID

1.RAID好處:

可以不用到機房現場,就能夠坐在辦公室里面遠程連接並控制服務器的配件。

  1. 更多的容量

  2. 得到更多的冗余(數據更安全)

  3. 得到更高的性能

    數據還是要備份

2.RAID的運行方式:

  1. 軟RAID(了解)
  2. 硬RAID(看視頻,網址 https://www.bilibili.com/video/av46656120?from=search&seid=8213679239129642497)

3.RAID的級別:

  1. RAID0 :條帶卷,容量最大。單塊容量*N,讀寫最快。沒有容錯機制,壞了一塊就全都不能用了。 主要提供訪問速度,不存儲數據。理論是2塊磁盤
    具有最高的存儲性能(磁盤容量不浪費,讀寫很快),這些磁盤的總和

要制作RAID 0至少要1塊物理磁盤,不做raid不能安裝系統

**安全:任何一塊硬盤損壞,所有的數據無法使用

  1. RAID1 : 鏡像卷,50%容量,讀一般,寫特慢,相當於寫兩分數據,有50%容錯機制。只能是兩塊
    鏡像:損失50%的數據容量。例如2塊1T的盤,做完RAID 1后容量為1T**

raid只能2塊硬盤

Mirror不能提高存儲性能。理論上寫性能和單盤相差不大

  1. RAID5 : 檢驗卷 ,總容量的三分之二,讀寫稍快。容錯機制,可以損壞三分之一,最低三塊
    需要至少3塊,損失一塊硬盤**

安全:最多可以損壞一塊硬盤

**性能:寫入速度不快,讀取Ok

  1. RAID10 :10 ,損失一半,讀寫快。容錯50%,只能四塊。
    最少4塊硬盤,增加硬盤必須是2的倍數;所有硬盤容量的一半**

安全:最多損壞一半硬盤

**性能:寫入和讀取都很快

總結:

性能從高到低:RAID0 -----> RAID10----->RAID4----->RAIID1

安全從高到低: RAID1------>RAID10------>RAID5------>RAID0

價格從高到低: raid10------->RAID1------->RAID5------->RAID0

注意:RAID硬盤失效處理--熱備和熱插拔

二、RAID實戰

軟RAID

mdadm	安裝
[root@web ~]# yum install -y mdadm

mdadm命令常見選項解釋:
-A      #激活磁盤陣列
-C      #建立一個新陣列
-D      #打印陣列設備的信息
-G      #改變陣列大小或形態
-S      #停止陣列
-r      #移除設備
-l      #設定磁盤陣列的級別
-n      #指定陣列磁盤的數量
-x      #指定陣列中備用盤的數量
-f      #將設備狀態定為故障
-a      #添加設備到陣列
-v      #顯示詳細信息軟RAID:通過操作系統實現

1.RAID0

創建RAID0實驗環境:

Raid種類 磁盤 熱備盤
Raid0 sdb、sdc

創建磁盤陣列RAID0

[root@web ~]# mdadm  -C -v /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc 
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

查看RAID陣列

[root@web ~]# mdadm  -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Thu Jul 18 18:30:52 2019
        Raid Level : raid0
        Array Size : 41908224 (39.97 GiB 42.91 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

Update Time : Thu Jul 18 18:30:52 2019
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

        Chunk Size : 512K

Consistency Policy : none

              Name : web:0  (local to host web)
              UUID : be7fa2cc:94484da2:cb10af97:caa583f0
            Events : 0
    
    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc

把信息寫入到配置文件中

[root@web ~]# mdadm  -Ds  >/etc/mdadm.conf

掛載使用

[root@web ~]# mdadm  -Ds  >/etc/mdadm.conf
[root@web ~]# mkfs.xfs   /dev/md0
meta-data=/dev/md0               isize=512    agcount=16, agsize=654720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=10475520, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=5120, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@web ~]# mkdir  /raid0
[root@web ~]# mount /dev/md0  /raid0
[root@web ~]# df -h |grep /dev/md0
/dev/md0         40G   33M   40G   1% /raid0
[root@web ~]# cp /etc/services  /raid0/

2.RAID1

創建RAID0實驗環境:

Raid種類 磁盤 熱備盤
Raid1 sdd、sde sdf

1)創建RAID1,並添加1個熱備盤
2)模擬磁盤故障,看備用盤是否會自動頂替故障盤
3)從raid1中移出故障盤

創建磁盤陣列

[root@web ~]# mdadm  -C -v  /dev/md1 -l 1 -n 2 -x 1  /dev/sd[e,d,f]
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
mdadm: size set to 20954112K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

查看RAID信息

[root@web ~]# mdadm  -D /dev/md1
/dev/md1:
           Version : 1.2
     Creation Time : Thu Jul 18 18:41:45 2019
        Raid Level : raid1
        Array Size : 20954112 (19.98 GiB 21.46 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 2
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Thu Jul 18 18:44:23 2019
             State : clean, resyncing 
    Active Devices : 2
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 1

Consistency Policy : resync

     Resync Status : 44% complete
    
              Name : web:1  (local to host web)
              UUID : 9d654e3a:12cf017f:eb091033:852f1ea6
            Events : 7
    
    Number   Major   Minor   RaidDevice State
       0       8       48        0      active sync   /dev/sdd
       1       8       64        1      active sync   /dev/sde
    
       2       8       80        -      spare   /dev/sdf

追加到配置文件中

[root@web ~]# mdadm  -Ds >/etc/mdadm.conf

掛載使用

[root@web ~]# mkfs.xfs   /dev/md1
meta-data=/dev/md1               isize=512    agcount=4, agsize=1309632 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5238528, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@web ~]# mkdir /raid1
[root@web ~]# mount /dev/md1 /raid1
[root@web ~]# df -h |grep /dev/md1
/dev/md1         20G   33M   20G   1% /raid1
[root@web ~]# cp /etc/services  /raid1

指定一塊盤故障

[root@web ~]# mdadm  -f /dev/md1 /dev/   

檢查數據有沒有丟失

[root@web ~]# ll /raid1
total 656
-rw-r--r--. 1 root root 670293 Jul 18 18:47 services

移除損壞的盤

[root@web ~]# mdadm  -r  /dev/md1 /dev/sde
mdadm: hot removed /dev/sde from /dev/md1

添加一塊盤

[root@web ~]# mdadm  -a  /dev/md1 /dev/sde

3.RAID5

創建RAID5實驗環境:

Raid種類 磁盤 熱備盤
Raid5 sdg、sdh、sdi sdj

1)使用三塊盤創建RAID5, 使用-x添加1個熱備盤
2)模擬損壞一塊磁盤,然后備用盤自動頂上,只能頂一次
3)在模擬損壞,檢測數據是否丟失,如果沒有再次模擬損壞.

創建陣列

[root@web ~]# mdadm  -C -v /dev/md5  -l 5 -n 3 -x 1  /dev/sd[g,h,i,j]
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.

查看RAID信息

[root@web ~]# mdadm  -D /dev/md5
/dev/md5:
           Version : 1.2
     Creation Time : Thu Jul 18 18:54:45 2019
        Raid Level : raid5
        Array Size : 41908224 (39.97 GiB 42.91 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Thu Jul 18 18:56:43 2019
             State : clean, degraded, recovering 
    Active Devices : 2
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 2

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

    Rebuild Status : 36% complete
    
              Name : web:5  (local to host web)
              UUID : 42d49a3d:f3dfcbb4:1c44c59c:90b62a9f
            Events : 6
    
    Number   Major   Minor   RaidDevice State
       0       8       96        0      active sync   /dev/sdg
       1       8      112        1      active sync   /dev/sdh
       4       8      128        2      spare rebuilding   /dev/sdi
    
       3       8      144        -      spare   /dev/sdj

將配置信息寫入到配置文件中

[root@web ~]# mdadm  -Ds  >/etc/mdadm.conf

掛載使用

[root@web ~]# mkfs.xfs   /dev/md5
meta-data=/dev/md5               isize=512    agcount=16, agsize=654720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=10475520, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=5120, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@web ~]# mkdir  /raid5
[root@web ~]# mount /dev/md5 /raid5
[root@web ~]# cp /etc/services  /raid5
[root@web ~]# ll /raid5
total 656
-rw-r--r--. 1 root root 670293 Jul 18 18:58 services

模擬一塊盤損壞

[root@web ~]# mdadm  -f /dev/md5  /dev/sdh

移除損壞的盤

[root@web ~]# mdadm  -r  /dev/md5  /dev/sdh

添加一塊盤

[root@web ~]# mdadm  -a  /dev/md5 /dev/sdh

4.RAID10

創建RAID10實驗環境:

Raid種類 磁盤 熱備盤
Raid10 分區:sdk1,sdk2, sdk3.sdk4

分區

[root@web ~]# gdisk  /dev/sdk
[root@web ~]# lsblk /dev/sdk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdk      8:160  0  20G  0 disk 
├─sdk1   8:161  0   5G  0 part 
├─sdk2   8:162  0   5G  0 part 
├─sdk3   8:163  0   5G  0 part 
└─sdk4   8:164  0   5G  0 part

創建磁盤陣列

[root@web ~]# mdadm  -C -v /dev/md10 -l 10 -n 4 /dev/sdk[1-4]

查看RAID信息

[root@web ~]# mdadm  -D /dev/md10

寫入到配置文件中

[root@web ~]# mdadm  -Ds >/etc/mdadm.conf

掛載使用

[root@web ~]# mkfs.xfs   /dev/md10
meta-data=/dev/md10              isize=512    agcount=16, agsize=163712 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2618112, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@web ~]# mkdir /raid10 
[root@web ~]# mount  /dev/md10  /raid10
[root@web ~]# cp /etc/services   /raid10
[root@web ~]# ll /raid10
total 656
-rw-r--r--. 1 root root 670293 Jul 18 19:12 services

模擬故障

[root@web ~]# mdadm  -f  /dev/md10  /dev/sdk3

移除損壞的盤

[root@web ~]# mdadm  -r /dev/md10  /dev/sdk2
mdadm: hot removed /dev/sdk2 from /dev/md10
[root@web ~]# mdadm  -r /dev/md10  /dev/sdk3
mdadm: hot removed /dev/sdk3 from /dev/md10

添加一塊硬盤

[root@web ~]# mdadm  -a  /dev/md10  /dev/sdk[2,3]
mdadm: added /dev/sdk2
mdadm: added /dev/sdk3
[root@web ~]# mdadm  -D /dev/md10

三、LVM介紹

1. 什么是LVM?

    LVM是Logical Volume Manager (邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制。又譯為邏輯卷宗管理器、邏輯扇區管理器、邏輯磁盤管理器,是Linux核心所提供的邏輯卷管理(Logical volume management)功能。它在硬盤的分區之上,又創建一個邏輯層,以方便系統管理硬盤分區系統。
    最先由IBM開發,在AIX系統上實現,OS/2 操作系統與 HP-UX也支持這個功能。在1998年,Heinz Mauelshagen 根據在 HP-UX 上的邏輯卷管理器,寫作出第一個 Linux 版本的邏輯卷管理器。

2. LVM解決了什么問題

    當我們剛開始安裝Linux操作系統是遇到的一個常見的難以決定的問題就是如何正確地評估各分區大小,以分配合適的硬盤空間。
    普通的磁盤分區好之后就無法改變其大小,而遇到出現某個分區空間耗盡時,解決的方法可以是符號鏈接,或者調整分區大小的工具,但這只是暫時解決方法,沒有從根本上解決問題。
    隨着Linux的邏輯卷管理功能的出現,這些問題都迎刃而解,用戶可以在無需停機的請款下可以方便的調整各個分區大小。

3.LVM的名詞

1.物理卷(PV):

(physical volume),把常規的磁盤設備通過pvcreate命令對其進行初始化,形成了物理卷。其實就是硬盤或分區。(面粉)

2.卷組(VG):

(volume group),把多個物理卷組成一個邏輯的整體,這樣卷組的大小就是多個硬盤之和。或者理解就是由一個或多個PV組成的整體。(面團)

3.邏輯卷(LV):

(logical volume),從卷組中划分需要的空間大小出來。用戶僅需對其格式化然后即可掛載使用。從VG中切割出的空間用於創建文件系統。(切成饅頭)

4.基本單元(PE):

(physical extend),分配的邏輯大小的最小單元,默認為4MB的基本塊。(假設分配100MB邏輯空間,則需要創建25個PE)

四、LVM實戰

1. 創建物理卷,加入卷組

1) 創建物理卷,將普通磁盤轉換為物理卷。
2)創建卷組,將物理卷加入到卷組中。
3)在卷組中划分邏輯卷,然后掛載使用。

 #1.准備物理磁盤,如果是虛擬機需要關閉添加磁盤,以便更好的實驗

[root@qiudao ~]# lsblk 
sdb               8:16   0   20G  0 disk  
sdc               8:32   0   20G  0 disk

#2.下載安裝軟件包
[root@web ~]# yum install lvm2 -y

#3.將/dev/sdb創建為物理卷

[root@web ~]# pvcreate  /dev/sdb
  Physical volume "/dev/sdb" successfully created.

#4.創建卷組,並將物理卷加入進去卷組--->名字lvm_test

[root@web ~]# vgcreate  lvm_test  /dev/sdb

#5.檢查卷組
[root@web ~]# vgs

#6.檢查當前邏輯卷VG中PV使用情況
[root@web ~]# pvs
創建一個邏輯卷,分配名稱,以及大小,指定卷組
選項:
    -L  #邏輯卷大小
    -n  #邏輯卷名字


#1.創建一個邏輯卷
[root@web ~]# lvcreate -L 1G -n lv1  lvm_test

#2.將lvm_test分配給lv1
[root@qiudao ~]# lvcreate -L 100M -n lv1 lvm_test      



#3.檢查  
[root@web ~]# vgs
  VG       #PV #LV #SN Attr   VSize   VFree  
  lvm_test   1   1   0 wz--n- <20.00g <19.00g

#4.檢查當前邏輯卷VG中PV使用情況
[root@web ~]# pvs
  PV         VG       Fmt  Attr PSize   PFree  
  /dev/sdb   lvm_test lvm2 a--  <20.00g <19.00g
[root@web ~]# lvs
  LV   VG       Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1  lvm_test -wi-a----- 1.00g                                                    
[root@web ~]# lsblk
NAME           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda              8:0    0   50G  0 disk 
├─sda1           8:1    0  200M  0 part /boot
├─sda2           8:2    0    2G  0 part [SWAP]
└─sda3           8:3    0 47.8G  0 part /
sdb              8:16   0   20G  0 disk 
└─lvm_test-lv1 253:0    0    1G  0 lvm 

#5.格式化邏輯卷 

[root@web ~]# mkfs.xfs  /dev/lvm_test/lv1 
meta-data=/dev/lvm_test/lv1      isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

#6.掛載使用 
[root@web ~]# mkdir   /lv1
[root@web ~]# mount  /dev/lvm_test/lv1   /lv1
[root@web ~]# df -h |grep lv1
/dev/mapper/lvm_test-lv1 1014M   33M  982M   4% /lv1
[root@web ~]# cp /etc/services  /lv1
[root@web ~]# ll /lv1
total 656
-rw-r--r--. 1 root root 670293 Jul 18 19:59 services

2.卷組管理,如何擴展卷組大小,如何刪除卷組

1. 如何擴大VG卷組

#1.將sdc指定為物理卷
[root@web ~]# pvcreate  /dev/sdc
  Physical volume "/dev/sdc" successfully created

#2. 添加到卷組中,使用vgextend擴展卷組
[root@web ~]# vgextend  lvm_test  /dev/sdc
  Volume group "lvm_test" successfully extended

3. 再次檢查,發現卷組已經擴大
[root@web ~]# vgs
  VG       #PV #LV #SN Attr   VSize  VFree 
  lvm_test   2   1   0 wz--n- 39.99g 38.99g
[root@web ~]# pvs
  PV         VG       Fmt  Attr PSize   PFree  
  /dev/sdb   lvm_test lvm2 a--  <20.00g <19.00g
  /dev/sdc   lvm_test lvm2 a--  <20.00g <20.00g
 

2. 假設想移除/dev/sdb磁盤,建議先將sdb磁盤數據先遷移到sdc磁盤,然后在移除。(同一卷組的磁盤才可以進行在線遷移),(注意卷組的名稱---)

#1.  將邏輯卷移動到sdc上面

#pvmove在線數據遷移,將sdb的數據遷移至sdc 
[root@web ~]# pvmove   /dev/sdb  /dev/sdc
  /dev/sdb: Moved: 1.95%
  /dev/sdb: Moved: 100.00%


#2.檢查是否將sdb數據遷移至sdc 
[root@web ~]# pvs
  PV         VG       Fmt  Attr PSize   PFree  
  /dev/sdb   lvm_test lvm2 a--  <20.00g <20.00g
  /dev/sdc   lvm_test lvm2 a--  <20.00g <19.00g

#4.縮減卷組大小
[root@web ~]# vgreduce   lvm_test  /dev/sdb
  Removed "/dev/sdb" from volume group "lvm_test"

#5. 檢查
[root@web ~]# vgs
  VG       #PV #LV #SN Attr   VSize   VFree  
  lvm_test   1   1   0 wz--n- <20.00g <19.00g
[root@web ~]# pvs
  PV         VG       Fmt  Attr PSize   PFree  
  /dev/sdb            lvm2 ---   20.00g  20.00g
  /dev/sdc   lvm_test lvm2 a--  <20.00g <19.00g

3.邏輯卷管理,動態的調整邏輯卷大小

方法1:

1. 邏輯卷的擴展,是取決於vg卷中是否還有剩余的容量,注意擴展邏輯卷不能超過卷組VG的總大小**

[root@qiudao ~]# vgs
VG               #PV #LV #SN Attr   VSize    VFree
datavg             1   1   0 wz--n- 1020.00m 920.00m

#1.擴展lv邏輯卷,增加800M分配給邏輯卷 {注意: 800M +800M 不一樣}
[root@qiudao ~]# lvextend -L +800M /dev/lvm_test/lv1

#或者可以選擇分配磁盤池中多少百分比給邏輯卷
[root@qiudao ~]# lvextend -l +50%FREE /dev/lvm_test/lv1

#2.擴展邏輯卷后需要更新fs文件系統
[root@qiudao ~]# xfs_growfs /dev/lvm_testvg/lv1    #xfs文件格式擴容

2. 縮小邏輯卷,不要去操作,因為線上在使用的磁盤真的敢操作嗎?

3. 刪除邏輯卷,如果不想使用邏輯卷可以選擇刪除。

[root@qiudao ~]# umount /dev/lvm_test/lv1

[root@qiudao ~]# lvremove /dev/lvm_test/lv1
Do you really want to remove active logical volume lvm_test/lv1? [y/n]: y
  Logical volume "lv1" successfully removed

方法2:

按照百分比增加大小

[root@web ~]# lvextend  -l 20%FREE  /dev/lvm_test/lv1 	
  Size of logical volume lvm_test/lv1 changed from 2.00 GiB (512 extents) to 3.60 GiB (922 extents).
  Logical volume lvm_test/lv1 successfully resized.

#更新文件系統
[root@web ~]# xfs_growfs  /dev/lvm_test/lv1 
meta-data=/dev/mapper/lvm_test-lv1 isize=512    agcount=8, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=524288, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 524288 to 944128

注意:縮減邏輯卷大小 , 企業不會去縮減,一般會直接刪除

4.怎樣刪除?

#1.首先要卸載
[root@web ~]# umount  /lv1
[root@web ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        48G  2.9G   45G   7% /
devtmpfs        980M     0  980M   0% /dev
tmpfs           991M     0  991M   0% /dev/shm
tmpfs           991M  9.7M  981M   1% /run
tmpfs           991M     0  991M   0% /sys/fs/cgroup
/dev/sda1       197M  105M   93M  54% /boot
tmpfs           199M     0  199M   0% /run/user/0

#2.移除

[root@web ~]# lvremove  /dev/lvm_test/lv1 
Do you really want to remove active logical volume lvm_test/lv1? [y/n]: y   #是否確認
  Logical volume "lv1" successfully removed

#3.檢查

[root@web ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   50G  0 disk 
├─sda1   8:1    0  200M  0 part /boot
├─sda2   8:2    0    2G  0 part [SWAP]
└─sda3   8:3    0 47.8G  0 part /
sdb      8:16   0   20G  0 disk 
sdc      8:32   0   20G  0 disk 

注意:LVM如果有一個磁盤損壞,整個lvm都壞了, lvm只有動態擴展作用,底層用RAID + 上層LVM = 既有冗余又有動態擴展

五、磁盤常見故障

1.block故障(數據滿了)

環境准備
先創建一個1G分區,並掛在使用

創建大文件,模擬磁盤空間滿

[root@web ~]# dd if=/dev/zero of=/test/test.log  bs=100M count=11
dd: error writing ‘/test/test.log’: No space left on device
10+0 records in
9+0 records out
1026621440 bytes (1.0 GB) copied, 18.7358 s, 54.8 MB/s
[root@web ~]# df -h |grep test
/dev/sde1      1014M 1012M  2.8M 100% /test

報錯No space left on device

 [root@web ~]# cp  services  /test/
cp: error writing ‘/test/services’: No space left on device
cp: failed to extend ‘/test/services’: No space left on device

檢查磁盤

 [root@web ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        48G  2.9G   45G   7% /
devtmpfs        980M     0  980M   0% /dev
tmpfs           991M     0  991M   0% /dev/shm
tmpfs           991M  9.7M  981M   1% /run
tmpfs           991M     0  991M   0% /sys/fs/cgroup
/dev/sda1       197M  105M   93M  54% /boot
tmpfs           199M     0  199M   0% /run/user/0
/dev/sde1      1014M 1014M   32K 100% /test

解決思路:

查找大文件,依次往下查找,直到找到大文件為止

[root@web ~]# du  -sh  /test/* 

找到之后,先確認是否可以刪除。

rm -f

刪除之后,磁盤還是滿的,先確認是否有硬鏈接。

2.inode故障(小文件太多)

#環境准備,創建一個30M的分區
[root@qiudao ~]# df -h |grep sdb1
dev/sdb1        27M  1.6M   26M   6% /test
[root@qiudao ~]# lsblk |grep sdb1
└─sdb1   8:17   0   30M  0 part /test

#批量創建大量的小文件

[root@qiudao ~]# touch /test/data/file/{1..15360}.txt

#再去到該分區中創建新的文件就會報錯。

[root@qiudao ~]# touch /test/test.txt
touch: cannot touch ‘/test/test.txt’: No space left on device

 
#解決思路:查看磁盤分區使用情況,發現磁盤空間是正常的,再次查看inode,發現inode滿了。

[root@qiudao ~]# df -h |grep sdb1
/dev/sdb1        27M  9.7M   17M  37% /test
[root@qiudao ~]# df -i |grep sdb1
/dev/sdb1         15424 15424        0  100% /test

#怎樣找出大量的小文件呢?首先要找出大目錄(小文件過多,會導致目錄變大。)

[root@qiudao ~]# find /test  -type d -size +300k |xargs ls -lhd

#找到大量小文件之后,首先要確認好之后再刪除,不要直接的去刪除
先確認是否可以刪除。千萬不要直接查看目錄內容,否則會被刷屏

[root@qiudao ~]# ll  /test/data |wc -l

[root@qiudao ~]# find /test/data/file/ -type f -delete



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM