天天看點

正式班D25

2020.11.09星期一  正式班D25

目錄

  • 13.7 LVM
    • 13.7.1 lvm簡介
    • 13.7.2 lvm基本使用
    • 13.7.3 線上動态擴容
    • 13.7.4 線上動态縮容與删除
    • 13.7.5 快照

13.7 LVM

13.7.1 lvm簡介

  • lvm介紹

    邏輯管理卷LVM是硬碟的一個系統工具。

    通過LVM技術可以屏蔽磁盤分區的底層差異,在邏輯上給檔案系統提供一個卷的概念,在卷上建議相應檔案系統。

    實體卷(PV):physical volume把正常的磁盤裝置通過pvcreate指令對其進行初始化,形成實體卷,也就是硬碟或分區。(比作面粉)

    卷組(VG):volume group把多個實體卷組成一個邏輯的整體,卷組的大小是多個硬碟之和,是由一個或多個PV組成的整體。(比作面團)

    邏輯卷(LV):logical volume從卷組中劃分需要的空間大小出來,使用者僅需對其格式化即可挂載使用,從VG中切割出的空間用于建立檔案系統。(比作饅頭)

    基本單元(PE):physical extend配置設定的邏輯大小的最小單元,預設4MB的基本塊,即100MB邏輯空間需要建立25個PE。

  • 使用lvm的原因

    fdisk、gdisk工具對磁盤分區是把分區大小固定死的

    如果分區設定的過大,白白浪費磁盤空間

    如果分區設定的過小,會導緻空間不夠用的情況出現

  • lvm優缺點

    優點:

    1、可以在系統運作的狀态下動态擴充檔案系統的大小

    2、檔案系統可以跨多個磁盤,是以檔案系統大小不會受到實體磁盤的限制

    3、可以增加新的磁盤到LVM存儲池中

    4、可以以鏡像的方式備援重要的資料到多個實體磁盤

    5、可以友善的導出整個卷組到另一台機器

    缺點:

    1、因為有額外的操作,存儲性能受到影響

    2、當卷組的一個磁盤損壞時,整個卷組都會受到影響

    ​ LVM有一個磁盤損壞,整個LVM都壞了,LVM隻有動态擴充作用

    ​ 解決措施:底層用RAID+上層LVM=既有備援又有動态擴充

    3、從卷組中移除一個磁盤時必須使用reducevg指令(要求root權限,且不允許在快照卷組中使用)

13.7.2 lvm基本使用

  • 下載下傳安裝軟體包
    [root@ccc ~]# yum install -y lvm2
               
  • 制作pv:可以對分區做,也可以對整塊盤做
    # 1、制作
    [root@ccc ~]# pvcreate /dev/sdb1
    WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y
      Wiping xfs signature on /dev/sdb1.
      Physical volume "/dev/sdb1" successfully created.
    [root@ccc ~]# pvcreate /dev/sdb2
      Wiping xfs signature on /dev/sdb2.
      Physical volume "/dev/sdb2" successfully created.
    [root@ccc ~]# pvcreate /dev/sdb3
      Wiping swap signature on /dev/sdb3.
      Physical volume "/dev/sdb3" successfully created.
    
    # 2、檢視
    [root@ccc ~]# pvs
      PV         VG Fmt  Attr PSize PFree
      /dev/sdb1     lvm2 ---  1.00g 1.00g
      /dev/sdb2     lvm2 ---  1.00g 1.00g
      /dev/sdb3     lvm2 ---  1.00g 1.00g
    [root@ccc ~]# pvscan
      PV /dev/sdb2                      lvm2 [1.00 GiB]
      PV /dev/sdb3                      lvm2 [1.00 GiB]
      PV /dev/sdb1                      lvm2 [1.00 GiB]
      Total: 3 [3.00 GiB] / in use: 0 [0   ] / in no VG: 3 [3.00 GiB]
               
  • 制作vg:将pv劃入vg中
    # 制作一個vg1(包含/dev/sdb1和/dev/sdb2兩個pv)
    [root@ccc ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2
      Volume group "vg1" successfully created
    [root@ccc ~]# vgs
      VG  #PV #LV #SN Attr   VSize VFree
      vg1   2   0   0 wz--n- 1.99g 1.99g
    
    # 制作vg2(包含/dev/sdb3一個pv)
    [root@ccc ~]# vgcreate vg2 /dev/sdb3
      Volume group "vg2" successfully created
    [root@ccc ~]# vgs
      VG  #PV #LV #SN Attr   VSize    VFree   
      vg1   2   0   0 wz--n-    1.99g    1.99g
      vg2   1   0   0 wz--n- 1020.00m 1020.00m
               
  • 建立邏輯卷lvm

    選項

    -L # 邏輯卷大小

    -n # 邏輯卷名字

    # 從vg1中分出來邏輯卷lv1_from_vg1、lv2_from_vg1
    [root@ccc ~]# lvcreate -L 100M -n lv1_from_vg1 vg1
      Logical volume "lv1_from_vg1" created.
    [root@ccc ~]# lvcreate -L 200M -n lv2_from_vg1 vg1
      Logical volume "lv2_from_vg1" created.
    
    # 從vg2中分出來邏輯卷lv1_from_vg2、lv2_from_vg2
    [root@ccc ~]# lvcreate -L 300M -n lv1_from_vg2 vg2
      Logical volume "lv1_from_vg2" created.
    [root@ccc ~]# lvcreate -L 400M -n lv2_from_vg2 vg2
      Logical volume "lv2_from_vg2" created.
    
    # 檢視
    [root@ccc ~]# lvs
      LV           VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      lv1_from_vg1 vg1 -wi-a----- 100.00m 
      lv2_from_vg1 vg1 -wi-a----- 200.00m 
      lv1_from_vg2 vg2 -wi-a----- 300.00m 
      lv2_from_vg2 vg2 -wi-a----- 400.00m 
               
  • 格式與挂載
    [root@ccc ~]# mkfs.xfs /dev/vg1/lv1_from_vg1 
    [root@ccc ~]# mkfs.xfs /dev/vg1/lv2_from_vg1 
    [root@ccc ~]# mkfs.xfs /dev/vg2/lv1_from_vg2
    [root@ccc ~]# mkfs.xfs /dev/vg2/lv2_from_vg2 
    
    [root@ccc ~]# mount /dev/vg1/lv1_from_vg1 /test1/
    [root@ccc ~]# mount /dev/vg1/lv2_from_vg1 /test2/
    [root@ccc ~]# mount /dev/vg2/lv1_from_vg2 /test3/
    [root@ccc ~]# mount /dev/vg2/lv2_from_vg2 /test4/
    
    # 檢視
    [root@ccc ~]# df
    檔案系統                       1K-塊    已用    可用 已用% 挂載點
    ...
    /dev/mapper/vg1-lv1_from_vg1   98980    5344   93636    6% /test1
    /dev/mapper/vg1-lv2_from_vg1  201380   10464  190916    6% /test2
    /dev/mapper/vg2-lv1_from_vg2  303780   15584  288196    6% /test3
    /dev/mapper/vg2-lv2_from_vg2  406180   20704  385476    6% /test4
               

13.7.3 線上動态擴容

  • 指令
    lvextend -L [+]MGT /dev/VG_NAME/VL_NAME
    # -L 100M與-L +100M不是一個意思,+100M代表在原有基礎上擴容
               
  • 示例
    [root@ccc ~]# lvextend -L +100M /dev/vg1/lv2_from_vg1 
      Size of logical volume vg1/lv2_from_vg1 changed from 200.00 MiB (50 extents) to 300.00 MiB (75 extents).
      Logical volume vg1/lv2_from_vg1 successfully resized.
    [root@ccc ~]# lvs
      LV           VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      lv1_from_vg1 vg1 -wi-ao---- 100.00m
      lv2_from_vg1 vg1 -wi-ao---- 300.00m                                   
      lv1_from_vg2 vg2 -wi-ao---- 300.00m                                   
      lv2_from_vg2 vg2 -wi-ao---- 400.00m    
    [root@ccc ~]# xfs_growfs /dev/vg1/lv1_from_vg1   # 擴充邏輯卷後需更新xfs檔案系統
               

13.7.4 線上動态縮容與删除

  • !!!!!!!!!!!!!!!不要縮容!!!!!!!!!!!!!
  • xfs不支援縮容
    lvreduce -L [-]MGT /dev/VG_NAME/LV_NAME  # 縮減邏輯卷
               
  • 删除
    # 删除lv之前需先解除安裝挂載點
    [root@ccc ~]# umount /test1
    [root@ccc ~]# lvremove /dev/vg1/lv1_from_vg1 
    Do you really want to remove active logical volume vg1/lv1_from_vg1? [y/n]: y
      Logical volume "lv1_from_vg1" successfully removed
    [root@ccc ~]# umount /test2
    [root@ccc ~]# lvremove /dev/vg1/lv2_from_vg1 -y
      Logical volume "lv2_from_vg1" successfully removed
    
    # 删除vg
    [root@ccc ~]# vgremove vg1
      Volume group "vg1" successfully removed
    
    # 删pv:隻能删掉不屬于任何vg的pv
    [root@ccc ~]# pvremove /dev/sdb1
      Labels on physical volume "/dev/sdb1" successfully wiped.
               

13.7.5 快照

  • lvm的快照功能采用寫時複制技術(Copy-On-Write,COW)
  • 建立快照時不用停止服務即可對資料進行備份
  • 快照本質是特殊的lv,建立快照後會将老資料賦給快照空間
    # 準備初始資料
    [root@ccc ~]# df
    檔案系統                       1K-塊    已用    可用 已用% 挂載點
    ...
    /dev/mapper/vg1-lv1_from_vg1   98980    5344   93636    6% /test1
    [root@ccc ~]# echo 111 > /test1/1.txt
    
    # 檢視vg1容量是否充足
    [root@ccc ~]# vgs
      VG  #PV #LV #SN Attr   VSize   VFree 
      vg1   1   1   0 wz--n- <10.00g <9.90g
    
    # 在vg1卷裡建立一個lv1_from_vg1的快照
    [root@ccc ~]# lvcreate -L 1G -s -n lv1_from_vg1_snap /dev/vg1/lv1_from_vg1 
      Reducing COW size 1.00 GiB down to maximum usable size 104.00 MiB.
      Logical volume "lv1_from_vg1_snap" created.
    
    # 檢視
    [root@ccc ~]# lvs
      LV                VG  Attr       LSize   Pool Origin       Data%  Meta%  Move Log Cpy%Sync Convert
      lv1_from_vg1      vg1 owi-aos--- 100.00m                                         
      lv1_from_vg1_snap vg1 swi-a-s--- 104.00m      lv1_from_vg1 0.01                                   
    # 修改檔案/test/1.txt
    [root@ccc ~]# echo 11111111 >> /test1/1.txt 
    [root@ccc ~]# cat /test1/1.txt 
    111
    11111111
    
    # 恢複資料
    # 挂載快照,和原來lvm使用同一個UUID,不被xfs允許,需加選項-o nouuid
    [root@ccc ~]# mount -o nouuid /dev/vg1/lv1_from_vg1_snap /opt/
    [root@ccc ~]# cat /opt/1.txt 
    111
    [root@ccc ~]# cp /opt/1.txt /test1/1.txt 
    cp:是否覆寫"/test1/1.txt"? y
    [root@ccc ~]# cat /test1/1.txt 
    111
               
  • 要恢複的檔案個數過多,直接合并
    [root@ccc ~]# mount /dev/vg1/lv1_freom_vg1 /test1
    [root@ccc ~]# echo ccc > /test1/2.txt
    [root@ccc ~]# cat /test1/2.txt 
    ccc
    [root@ccc ~]# lvcreate -L 1G -n lv1_from_vg1_snap /dev/vg1/lv1_freom_vg1 
      Volume group name expected (no slash)
      Run `lvcreate --help' for more information.
    [root@ccc ~]# lvcreate -L 1G -s -n lv1_from_vg1_snap /dev/vg1/lv1_freom_vg1 
      Reducing COW size 1.00 GiB down to maximum usable size 104.00 MiB.
      Logical volume "lv1_from_vg1_snap" created.
    [root@ccc ~]# echo 1111 >> /test1/2.txt 
    [root@ccc ~]# echo 1111 >> /test1/2.txt 
    [root@ccc ~]# echo 1111 >> /test1/2.txt 
    [root@ccc ~]# echo 1111 >> /test1/2.txt 
    [root@ccc ~]# cat /test1/2.txt 
    ccc
    1111
    1111
    1111
    1111
    [root@ccc ~]# mount -o nouuid /dev/vg1/lv1_from_vg1_snap /opt/
    [root@ccc ~]# cat /opt/2.txt 
    ccc
    
    # 先解除安裝資料源與快照,再進行合并,快照是一次性的會自動删除
    [root@ccc ~]# umount /opt/
    [root@ccc ~]# umount /test1/
    [root@ccc ~]# lvconvert --mergesnapshot /dev/vg1/lv1_from_vg1_snap 
      Merging of volume vg1/lv1_from_vg1_snap started.
      vg1/lv1_freom_vg1: Merged: 100.00%
    [root@ccc ~]# mount /dev/vg1/lv1_freom_vg1 /test1
    [root@ccc ~]# cat /test1/2.txt 
    ccc
               

14 網絡管理

14.1 網卡名字

  • 配置回歸傳統命名方式
    # 修改網卡配置檔案名稱
    [root@ccc ~]# cd /etc/sysconfig/network-scripts/
    [root@ccc network-scripts]# mv ifcfg-ens33 ifcfg-eth0
    
    # 修改網卡配置檔案裝置名稱
    [root@ccc network-scripts]# sed -i "s@ens33@eth0@g" ifcfg-eth0   
    
    # GRUB添加kernel參數
    [root@ccc network-scripts]# vim /etc/sysconfig/grub 
    [root@ccc network-scripts]# tail -2 /etc/sysconfig/grub | head -1
    GRUB_CMDLINE_LINUX="spectre_v2=retpoline rhgb quiet 'net.ifnames=0 biosdevname=0'"
    
    # 加載到引導分區
    [root@ccc network-scripts]# grub2-mkconfig -o /boot/grub2/grub.cfg 
    Generating grub configuration file ...
    Found linux image: /boot/vmlinuz-3.10.0-1127.el7.x86_64
    Found initrd image: /boot/initramfs-3.10.0-1127.el7.x86_64.img
    Found linux image: /boot/vmlinuz-0-rescue-d756bc9b1bf84350b002ec5d9e37360d
    Found initrd image: /boot/initramfs-0-rescue-d756bc9b1bf84350b002ec5d9e37360d.img
    done
    
    # 重新開機系統以生效
    [root@ccc ~]# reboot
               

14.2 基本網絡配置

14.2.1 檢視網卡資訊

  • 檢視網卡資訊
    # 檢視目前系統所連接配接的所有網卡
    [root@ccc ~]# lspci | grep -i eth
    02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
    
    # 确認網線已經連接配接好
    [root@ccc ~]# ethtool eth0
    Settings for eth0:
    	Supported ports: [ TP ]
    	Supported link modes:   10baseT/Half 10baseT/Full 
    	                        100baseT/Half 100baseT/Full 
    	                        1000baseT/Full 
    	Supported pause frame use: No
    	Supports auto-negotiation: Yes
    	Supported FEC modes: Not reported
    	Advertised link modes:  10baseT/Half 10baseT/Full 
    	                        100baseT/Half 100baseT/Full 
    	                        1000baseT/Full 
    	Advertised pause frame use: No
    	Advertised auto-negotiation: Yes
    	Advertised FEC modes: Not reported
    	Speed: 1000Mb/s
    	Duplex: Full
    	Port: Twisted Pair
    	PHYAD: 0
    	Transceiver: internal
    	Auto-negotiation: on
    	MDI-X: off (auto)
    	Supports Wake-on: d
    	Wake-on: d
    	Current message level: 0x00000007 (7)
    			       drv probe link
    	Link detected: yes
    [root@ccc ~]# mii-tool eth0
    eth0: negotiated 1000baseT-FD flow-control, link ok
    # link ok指網卡能夠被識别,并且接了有效網線
               

14.2.2 ifconfig指令

  • ifconfig指令
    ifconfig -a  									   # 檢視所有網卡資訊
    ifconfig eth0									   # 檢視單個的網卡資訊
    ifconfig eth0 192.168.1.122 netmask 255.255.255.0  # 設定臨時IP和掩碼(重新開機失效)
    ifconfig eth0 192.168.1.122/24 				  	   # 臨時設定IP位址
    ifconfig eth0:1 192.168.0.2 netmask 255.255.255.0  # 配置子接口
    ifconfig eth0:0 down						  	   # 删除
    ifconfig eth0:1 del 192.168.0.2					   # 删除,不加掩碼
        
    開啟與關閉
    ifconfig eth0 down|up  							   # 不加載網卡配置檔案
    ifdown eth0 |ifup eth0  						   # 加載網卡配置檔案
               

14.2.3 ping指令

  • ping
    ping 目标IP位址  # ctrl+c結束,測試兩台主機網絡是否相通
    ping -c 次數 目标IP位址
    
    # 在自己機器上執行,禁止别人ping自己
    [root@ccc ~]# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
               

14.2.4 NetworkManager服務

  • 作用:是redhat6自帶的檢測網絡、自動連接配接網絡的圖形化工具。
  • NetworkManager服務會幹擾網絡配置,如DNS經常會被刷掉,是以常關閉。
  • 網卡相關的配置檔案/etc/sysconfig/network-scripts/ifcfg-ethX接口的網絡配置檔案
    # 打開網卡配置檔案,完成靜态IP配置
    # 修改後重新開機網絡服務systemctl restart network
      1 TYPE=Ethernet
      2 PROXY_METHOD=none
      3 BROWSER_ONLY=no
      4 BOOTPROTO=none									# dhcp動态擷取IP
    													# none根據其他選項決定動态或靜态
    													# static手動指定IP
      5 DEFROUTE=yes
      6 IPV4_FAILURE_FATAL=no
      7 NAME=eth0
      8 UUID=39e06fd4-3081-4cfe-8937-65fd357b6727
      9 DEVICE=eth0										# 網卡名字
     10 ONBOOT=yes										# yes激活狀态no禁用
     11 IPADDR=192.168.29.55							# IP位址
     12 NETMASK=255.255.255.0							# 子網路遮罩
     13 DNS1=8.8.8.8									# DNS伺服器
     14 PREFIX=24
     15 GATEWAY=192.168.29.1							# 預設網關
               

14.2.5 DNS配置檔案

  • DNS解析檔案/etc/resolv.conf
    [root@ccc ~]# cat /etc/resolv.conf			# 設定DNS指向,最多三個
    # Generated by NetworkManager
    nameserver 8.8.8.8							# 對應網卡配置檔案中的配置項DNS
               
  • 本地名稱解析檔案(優先于DNS)/etc/hosts
    dns優先級
    浏覽器dns緩存-->本地系統DNS緩存-->本地計算機HOSTS檔案-->ISP DNS緩存-->遞歸/疊代查詢
               

14.2.6 永久設定主機名

  • hostnamectl
  • /etc/hostname
    [root@ccc ~]# hostnamectl set-hostname zzz
    [root@ccc ~]# hostname
    zzz
    [root@ccc ~]# vim /etc/hostname 
               

14.2.7 端口與服務的對應關系

  • 對應關系
    [root@ccc ~]# grep '^ftp\ | ^ssh' /etc/services