1. 程式人生 > >學習筆記(12)

學習筆記(12)

學習筆記

註意: 在填充512字節的時候註意bs的大小要是用1字節來填充 dd if=/dev/zero of=/dev/sdb bs=1 count=2 skip=510 seek=510

刪除硬盤的時候最好在關機的狀態下來執行,虛擬機模擬環境也最好這樣做

補充:創建pv既可以分區也可以磁盤

1.創建軟raid(4塊磁盤同一做文件系統)

fdisk 修改t 然後選擇1(指定修改哪個分區,1為分區號)為需要將分區的id修改為fd 做raid

dd if=/dev/sdb of=/dev/sdc bs=1 count=66 skip=446 seek=446 (要包括最後兩個字節的55aa,此標記是表示該磁盤是否劃分分區,沒有55aa,lsblk查看不到分區信息) 需要跳過bootloader 引導加載器,因為添加的磁盤不作為引導盤來使用,需要跳過446字節

partx -a /dev/sdc (centos6 中) centos7 使用partprobe ,不同步的話使用 lsblk不能查看到剛剛添加的分區

partx -d --nr 1 /dev/sdc 刪除時用,註意sdc後面沒數字,因為前面有數字1了,可以寫範圍的1-3 分區號

(清文件系統 dd if=/dev/zero of=/dev/sdb1,不需要完全填充0,只需要填充superblock塊即可,稍等片刻即可)

mdadm -C /dev/md0 -a yes -l5 -c32 -n3 -x1 /dev/sd{b1,c1,d,e1} -l選項是指定chunk大小為32K,要按順序定義的寫,最後一個是x1(備用硬盤)e1

mdadm -D /dev/md0

blkid 可以查看到raid的UUID信息

blkid /dev/md0 沒有任何輸出信息,因為沒有創建文件系統,使用raid模式,需要全部同一安裝文件系統

mkfs.ext4 /dev/md0 -L raid5

blkid /dev/md0 創建完操作系統之後就可以查看到md0的文件系統信息


vim /etc/fstab

:r!blkid /dev/md0

UUID=a7998bb6-6912-40d0-89fa-5be633ad3477 /mnt/raid ext4 defaults 0 0


mdadm -Ds /dev/md0 >/etc/mdadm.conf 防止重啟raid設備後就不會提示找不到配置文件

補充: 使用man幫助所有-D選項的使用-需要轉義,:/\<\-D\> 錨定整個單詞,並使用\來轉義

dd if=/dev/zero of=/mnt/raid/f1 bs=1M count=1024

補充 dd if=/dev/zero of=/mnt/raid/f2 bs=1M count=1024 conv=fdatasync 寫入磁盤才結束,而不是寫入buffer算結束


讀取速度有可能是因為buffer,cache中有數據導致,可以使用free -m 來查看buffer cache來

dd if=/root/f1 of=/dev/null 測試讀取速度


umount /mnt/raid (執行下面的-S命令先要umount)

mdadm -S /dev/md0 停用raid

mdadm -A /dev/md0 啟用raid

[root@centos7 ~]#mdadm -A /dev/md0 沒有創建配置文件會導致的問題

mdadm: /dev/md0 not identified in config file.

mdadm -D /dev/md0 查看raid狀態


mdadm /dev/md0 -f /dev/sdd1 模擬損壞磁盤,備用磁盤立即頂替損壞的磁盤

查看構建過程: watch -n 1 mdadm -D /dev/md0 每一秒刷新一次


mdadm -D /dev/md0信息截取:

Number Major Minor RaidDevice State

3 8 81 0 spare rebuilding /dev/sdf1

1 8 49 1 active sync /dev/sdd1

4 8 65 2 active sync /dev/sde1


0 8 17 - faulty /dev/sdb1


mdadm /dev/md0 -r /dev/sdd1 從raid中移除設備sdd1

mdadm /dev/md0 -a /dev/sdd1 從raid中添加回sdd1


parted 命令的使用風格,這種寫法不多。


虛擬機vm中拆除備用盤和raid盤中一塊來查看容錯性

mdadm -D /dev/md0 state: degraded 降級使用,需要計算損壞硬盤的數據,所以要耗費系統的性能,因為CPU要通過計算算出出錯硬盤的數據

state: clean 為正常

2.作業: 實現raid10 下面的是兩個1 兩個1 然後構成raid0

mdadm -C /dev/md0 -a yes -l1 -n2 /dev/sd{b,c} -c32可以指定chunk大小

mdadm -C /dev/md0 -a yes -l1 -n2 /dev/sd{d,e}

mdadm -C /dev/md0 -a yes -l0 -n2 /dev/md{0,1}

或者

mdadm -C /dev/md0 -a yes -l10 -n4 /dev/sd{b,c,d,e} 直接創建raid10


3.添加raid成員

分區不同步使用lsblk查看不到分區 centos6 使用partx 7使用 partprobe

mdadm -G /dev/md0 -n4 -a /dev/sdb3 新增加/dev/sdb3分區

mdadm -D /dev/md0 查看/dev/md0的詳細信息(mdadm /dev/md0 查看/dev/md0的簡單信息)

df -h 查看不到

resize2fs /dev/md0 同步所有文件系統空間 (只是用ext系列)

resize2fs /dev/vg0/lv0 同步擴展或縮減文件系統空間(df 查看是否空間是否被同步) 兩處使用此命令一種是raid的增減和縮減空間(只能在ext系列文件系統上使用),一種是lvs的增加或縮減空間 這個實驗還沒做

(沒有文件系統無法使用df來查看,所以不創建文件系統的分區使用df 來查看到)

xfs_growfs /mnt/raid 後面的是掛載點在擴展的時候使用,因為xfs系統不能縮減lv,不能使用/dev/md0 xfs系統同步增加或縮減空間中使用 命令作用同步文件系統,統一raid中的所有磁盤分區的文件系統,raid是統一管理文件系統的,所以可以使用同步文件系統的方式來修改新增加磁盤分區的文件系統


4.mdadm -D /dev/md0 (cat/proc/mdstat查看磁盤)

5.刪除raid

umount /mnt/raid

刪除/etc/fstab

rm -rf /etc/mdadm.conf

有些命令有延遲 如mdadm -S /dev/md0 ll /dev/md0還可以查看到,過會就不見了

下次使用作為raid的分區的時候如果有殘留的信息,使用blkid可以查看到,清除使用

mdadm --zero-superblock /dev/sdb1 刪除前使用該命令消除殘留raid信息,使用blkid 查看會發現raid信息已經沒有

如果分區不可用時,可以直接使用dd if=/dev/zero of=/dev/sdb1 毀壞文件系統即可,不需等待過程全部完成


補充:

想要毀壞非引導分區可以直接填充最後的55aa兩個字節,系統默認就會認為該磁盤沒有劃分分區,dd if=/dev/zero of=/dev/sdb bs=1 count=2 seek=510,過程完成後,可以使用lsblk來查看,會發現分區已經不見。


fdisk -l /dev/sdc 是從硬盤中查找的分區信息

lsblk 是從內存中查找的分區信息,若使用lsblk查看不到時,可以使用partprobe(centos7),partx -a /dev/sdc (centos6) 來同步

為不同磁盤創建相同分區可以使用dd命令,主需要填寫後面的66字節即可,因為不是引導盤,所以不需要填充前446字節

dd if=/dev/sdb of=/dev/sdd bs=1 count=66 skip=446 seek=446 註意要使用skip


df查看到的信息是已經存在文件系統,並且已經掛載使用的

lsblk查看到的是塊設備的信息,包括可以查看到是否劃分分區

fdisk 則可以查看到系統的id號,包括fd、82、83、8e


vi 編輯其中不要忘了使用d0和d$的使用,還有c0和c$的使用


6.pv vg lv 由下至上 記憶順序

7.卷組分割單位為PE,為LV分配空間的最小單元

8.fdisk 可以查看到分區id,fdisk -l /dev/sda1 ,因為可以修改嗎,所以當然可以查看了。

9. 創建LVM

pvcreate /dev/sd{a7,c1}

(超級塊中有分區信息,之前的md0有超級塊信息 dd幹掉超級塊信息)

pvdisplay

vgs 查看卷組

vgdisplay 查看卷組

vgcreate -s 16M vg0 /dev/sd{a7,c1} 16M PE PE是vg的最小單元,在分區中使用的是PE,新磁盤不是

pvs 列出pvs的簡單信息

pvdisplay 列出pvs的詳細信息

vgs

vgdisplay

lvcreate -n lv0 -l 100 vg0(-L 指定容量,-l 指定PE個數) -l更精確

補充:lvcreate -n lv0 -L +10G|10G # +10G 表示增減10G,10G表示增加到10G

lvs

lvdisplay


lvcreate -n lv1 -l 100%free (使用全部空間) vg0

lvs


兩個lv的鏈接,做文件系統時需要指定,掛載的時候同樣需要指定,任選其一就可

/dev/mapper/vg0-lv0

/dev/vg0/lv1

[root@centos7 ~]#ll /dev/vg0/lv0

lrwxrwxrwx 1 root root 7 Apr 26 06:42 /dev/vg0/lv0 -> ../dm-0

[root@centos7 ~]#ll /dev/mapper/vg0-lv0

lrwxrwxrwx 1 root root 7 Apr 26 06:42 /dev/mapper/vg0-lv0 -> ../dm-0


mkfs.ext4 /dev/vg0/lv1 創建文件系統

mkfs.ext4 /dev/vg0/lv0 創建文件系統


測試讀寫性能

dd if=/dev/zero of=/mnt/lv0/f2 bs=1M count=500 conv=fdatasync 加上conv=fdatasync選項將數據直接寫入磁盤算結束,而不是寫入cache算結束


補充:

echo '- - -' > /sys/class/scsi_host/host2/scan 用來探測新增加磁盤

partprobe(centos7)、partx(centos6)是用來識別新增加的分區,和刪除分區時的信息,lsblk分區不同步時使用

partx -a /dev/sd# centos6增加分區時用來同步(是否識別使用lsblk來查看)

partx -d -nr 1-3 /dev/sd# centos6 刪除1、2、3分區時來同步

pvcreate /dev/sdd 創建pv之前可以直接使用整塊磁盤而不分區,也可以分區後再創建pv

vgextend vg0 /dev/sdd1

pvs

vgdisplay

lvdisplay

lvextend -L +5G(5G) /dev/vg0/lv0 +5G是加5G 5G是加到5G

lvs

df -h

resize2fs /dev/vg0/lv0 同步擴展或縮減系統空間(df 查看是否空間是否被同步) 兩處使用此命令一種是raid的增減和縮減空間,一種是lvs的增加或縮減空間

主要是針對raid 和lvm 因為是多塊組成一個,lvextnd -r 可以直接同步文件系統


lvextend -r -l +100%FREE /dev/vg0/lv0 -r選項可以直接同步文件系統空間,不需要使用resize2fs /dev/vg0/lv0來同步


lvm縮減空間前要先備份


xfs的文件系統不能縮減空間,可以擴展空間,ext系列文件系統可以縮減空間和擴展空間


註意:

擴展lv需要先擴展邏輯卷,再擴展文件系統(resize2fs 在不使用lvextend -r選項的時候)

縮減lv需要先縮減文件系統,在縮減邏輯卷空間


1.umount /mnt/lv0 卸載

2.fsck -f /dev/vg0/lv0 因為resize2fs之前要提示檢測文件系統,必須給出-f選項

3.resize2fs /dev/vg0/lv0 10G 要擴展文件系統空間的時候不需要指定大小

4.lvreudce -L 10G /dev/vg0/lv0 縮減邏輯卷

5.mount -a 重新掛載


移除lv中的壞掉的硬盤

1.pvmove /dev/sdd 將當前pv的數據移動到卷組中的其他的pv中,移動到那些成員由系統自動決定,不需要認為指定

2.vgredunce vg0 /dev/sdd 從卷組中移除sdd

3.pvremove /dev/sdd 恢復成普通硬盤

10.vg 、lv修改名字(用於遷移邏輯卷lvm時與目標服務器的lvm名字沖突)

vgrename vg0 centos6vg0

vgdisplay

lvrename /dev/centos6vg0/lv0 /dev/centos6vg0/cento6lv0

lvrename /dev/centos6vg0/lv1 /dev/centos6vg1/cento6lv1

11.遷移邏輯卷,需要將需要移動的lv數據移動到一塊硬盤(/dev/sda)上,然後在拆除硬盤安裝在另外的服務器上,遷移前要註意不要和目標服務器的lvm名字沖突

umount /mnt/lv0

pvmove /dev/sda7

vgreduce vg0 /dev/sda7 將/dev/sda7的分區從vg0中移除

vgchange -an centos6vg0 禁用卷組vg

lvdisplay

vgexport centos6vg0 導出卷組vg,將狀態設置為導出狀態為導出vg做準備

vgdisplay 查看到狀態為導出狀態

pvdisplay 所有的pv也同樣處於了導出的狀態

拆虛擬機硬盤,找到指定的硬盤文件,並剪切該文件至目標虛擬機的路徑中,添加虛擬機磁盤找到添加現有磁盤

(運行裏寫路徑找文件很方便,拷貝硬盤文件)

vgimport cento6vg0 將新增減的磁盤的vg設置為導入狀態

vgdisplay

lvdisplay

vgchange -ay centos6vg0 激活卷組,lvm也變為可用狀態

mkdir /mnt/centos6lv0

mount /dev/centos6vg0/centos6lv0 /mnt/centos6lv0


12.快照先只分配一塊空間(速度快),文件修改時才未修改原有文件傳進快照空間

13.創建邏輯卷快照

lvcreate -n name -s -L 1G -p r /dev/name/cento6lv0 -s指定快照選項 -p r 只讀方式不可修改快照內容

lvdisplay

說明:未修改數據前的快照數據其實是來自源文件,只是為了顯示快照已生效

快照恢復文件

umount /mnt/snap

umount /mnt/centos6lv0

lconvert --merge /dev/centos6vg0/centos6lv0


xfs 快照

mount -o nouuid ... 不檢查UUID,否則相同UUID報錯,因為快照的UUID相同


(快照大小<= 原空間大小即可,只存放修改的數據之前的就文件)

15.刪除邏輯卷

1.先umount

2.lvremove 刪除

16.快照恢復使用後就會被刪除

ext4 -p r merge

xfs 不要加-p r 否則報錯

xfs mount -o nouuid 需要添加該選項 ,ext系列不需要

17.備份mysql數據庫的一種手段就是使用lvm快照,cp太慢會有數據修改,可以將備份的數據使用快照恢復cp過程中修改的文件

實驗:邏輯卷的快照、遷移邏輯卷


帶寬以位為單位,下載的文件是以字節為單位,所以要除以8

18.混雜模式的網卡 即便不是自己的報文也會接收

19.交換機裏面自動做交換,不需要使用交叉線

兩臺電腦使用交叉線相連13 26對調

20.T568B線序: 橙白 橙 綠白 藍 藍白 綠 棕白 棕

T568A線序(1、3和2、6對調): 綠白 綠 橙白 藍 藍白 橙 棕白 棕

21.MBR數據在硬盤的硬盤的0柱面、0磁頭、0扇區(第一個扇區),DPT(Disk partition table),分區有效標誌 55AA


學習筆記(12)