2020.11.09星期一 正式班D25python
lvm介紹linux
邏輯管理卷LVM是硬盤的一個系統工具。ios
經過LVM技術能夠屏蔽磁盤分區的底層差別,在邏輯上給文件系統提供一個卷的概念,在捲上建議相應文件系統。vim
物理卷(PV):physical volume把常規的磁盤設備經過pvcreate命令對其進行初始化,造成物理卷,也就是硬盤或分區。(比做麪粉)瀏覽器
卷組(VG):volume group把多個物理卷組成一個邏輯的總體,卷組的大小是多個硬盤之和,是由一個或多個PV組成的總體。(比做麪糰)緩存
邏輯卷(LV):logical volume從卷組中劃分須要的空間大小出來,用戶僅需對其格式化便可掛載使用,從VG中切割出的空間用於建立文件系統。(比做饅頭)服務器
基本單元(PE):physical extend分配的邏輯大小的最小單元,默認4MB的基本塊,即100MB邏輯空間須要建立25個PE。網絡
使用lvm的緣由app
fdisk、gdisk工具對磁盤分區是把分區大小固定死的ssh
若是分區設置的過大,白白浪費磁盤空間
若是分區設置的太小,會致使空間不夠用的狀況出現
lvm優缺點
優勢:
一、能夠在系統運行的狀態下動態擴展文件系統的大小
二、文件系統能夠跨多個磁盤,所以文件系統大小不會受到物理磁盤的限制
三、能夠增長新的磁盤到LVM存儲池中
四、能夠以鏡像的方式冗餘重要的數據到多個物理磁盤
五、能夠方便的導出整個卷組到另外一臺機器
缺點:
一、由於有額外的操做,存儲性能受到影響
二、當卷組的一個磁盤損壞時,整個卷組都會受到影響
LVM有一個磁盤損壞,整個LVM都壞了,LVM只有動態擴展做用
解決措施:底層用RAID+上層LVM=既有冗餘又有動態擴展
三、從卷組中移除一個磁盤時必須使用reducevg命令(要求root權限,且不容許在快照卷組中使用)
下載安裝軟件包
[root@ccc ~]# yum install -y lvm2
製做pv:能夠對分區作,也能夠對整塊盤作
# 一、製做 [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. # 二、查看 [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_vg一、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_vg二、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
命令
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文件系統
!!!!!!!!!!!!!!!不要縮容!!!!!!!!!!!!!
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.
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
配置迴歸傳統命名方式
# 修改網卡配置文件名稱 [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
查看網卡信息
# 查看當前系統所鏈接的全部網卡 [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指網卡可以被識別,而且接了有效網線
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 # 加載網卡配置文件
ping
ping 目標IP地址 # ctrl+c結束,測試兩臺主機網絡是否相通 ping -c 次數 目標IP地址 # 在本身機器上執行,禁止別人ping本身 [root@ccc ~]# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
做用:是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 # 默認網關
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緩存-->遞歸/迭代查詢
hostnamectl
/etc/hostname
[root@ccc ~]# hostnamectl set-hostname zzz [root@ccc ~]# hostname zzz [root@ccc ~]# vim /etc/hostname
對應關係
[root@ccc ~]# grep '^ftp\ | ^ssh' /etc/services