raid0 條帶化 chunk最小寫入單位 至少2塊盤 空間大小 單塊磁盤大小*n
raid1 鏡像 1/n 讀性能提升,寫入比單塊盤慢 空間始終是一塊盤的大小 容錯率高 可以壞 n-1塊盤
raid10 容錯高于raid01 但空間損失更多,讀寫性能 提升 造價高。
raid4
創建 raid ,在磁盤里創建
mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}
# fdisk /dev/md0可進行分區
# mkfs.ext4 /dev/md0格式化
# mkdir /mnt/raid5 創建目錄
# mount /dev/md-0 掛載
**********************************
先添加硬盤,在分區里創建raid
#fdisk /dev/sdc 分區
#mkfs.ext4 /dev/sdc格式化
#mdadm -C /dev/md2 -a yes -l 1 -n 2 -x 1 /dev/sdc{1,2,3}創建
#lsblk
#mkdir /mnt/raid1
#mount /mnt/raid1
mdadm -C /dev/md1 -a yes -l 0 -n 2 -c 1M /dev/sdf{1,2}
-C –create /dev/mdX 創建 名為mdX 的raid
-a yes 當沒有所有的/dev/mdX 設備時,自動創建該設備
-l –level n 所要創建的raid等級
-n n 該raid的數據盤有多少個成員
-x n 該raid的熱備盤有多少個 raid0 不支R持-x
-c 值 指定chunk大小,僅限raid0 raid5
/dev/sdx…. 指定raid的成員盤。
fd 轉換類型 (為raid)
刪除raid
umount
mdadm -D /dev/md2 先查一下,該raid由哪有成員組成
mdadm -S /dev/md2 暫停
mdadm –zero-superblock /dev/sdf4
mdadm –zero-superblock /dev/sdf3
清空/etc/mdadm.conf當中,該raid的信息
mdadm /dev/md0 -f /dev/sdd 模擬將/dev/md0 raid中的sdd壞掉
mdadm /dev/md0 -r /dev/sdd 將/dev/md0 raid中的sdd 拔掉
mdadm /dev/md0 -a /dev/sdd 向/dev/md0 增加設備sdd 如數據盤不夠,則加為數據盤,如夠,加為熱備盤
mdadm -G /dev/md0 -n 6 -a /dev/sdh 將/dev/md0的數據盤設置為6個,并將/dev/sdh加入為數據盤。
mdadm -A /dev/md1 /dev/sdb /dev/sdc 當沒有將md1信息保存至mdadm.conf時,只能手動指定raid成員
mdadm -D -s > /etc/mdadm.conf 將所有的raid成員信息保存至mdadm.conf文件
mdadm -D -s /dev/md0 >> /etc/mdadm.conf 僅將md0的信處追加保存至mdadm.conf文件
mdadm -A /dev/md1 從/etc/mdadm.conf中讀取成員信息,并僅激活md1
mdadm -A -s 從/etc/mdadm.conf中讀取成員信息,并激活所有的raid
練習:
1:創建一個可用空間為1G的RAID1設備,文件系統為ext4,有一個空閑盤,開機可自動掛載至/backup目錄 /etc/fstab
#mdadm -C /dev/md2 -l 1 -n 2 -x 1 /dev/sdc{1,2,3}
#mkdir /mnt/backup
#vim /etc/fstab
/dev/md2 /mnt/backup ext4 defaults 0 0
2:創建由三塊硬盤組成的可用空間為2G的RAID5設備,要求其chunk大小為256k,文件系統為ext4,開機可自動掛載至/mydata目錄
-n 3 -c 256k
空間大小 3-1
#mdadm -C /dev/md3 -a yes -l 5 -n 3 -c 256k /dev/sda{10..12}
#mdadm -Ds > /etc/mdadm.conf 將顯示的信息導入文件中
#mkfs.ext4 /dev/md3
#mkdir /mydata
#vim /etc/fstab
/dev/md3 /backup ext4 defaults 0 0
邏輯卷
/dev/dm-1 (1000) :0-900 /dev/sda1 (200-1100)
901 1000 /dev/sda1 (1300-1400)
/dev/vg0/lv0 –> /dev/dm-0
LVM(前提是已經創建過raid)
pvcreate /dev/md0p1 /dev/md1 創建pv,物理卷
pvremove /dev/md0p1
vgcreate vgmage26 /dev/md0p1 /dev/md1 創建vg,卷組
-s 8M 指定PE大小,默認4M
vgchange -s 8M 更改PE大小 #vgchange -s 8M vgmage26
vgreduce vgmage26 /dev/md1 在vg內移除pv
vgextend vgmage26 /dev/md1 在vgmage26下增加/擴展一個/dev/md1
vgremove vgmage26 刪除一個vg
lvcreat -l -n +邏輯卷名 創建邏輯卷 # lvcreate -l 10 -n lvmage26_01 vgmage26
-L 指定大小
# mkfs.ext4 /dev/vgmage26/lvmage26_01 格式化
# mkdir /mnt/lvmage26_01
# mount /dev/vgmage26/lvmage26_01 /mnt/lvmage26_01/
# cd /mnt/lvmage26_01
# cp /etc/*.conf .
查看邏輯卷的剩余空間:
pvs
pvs /dev/md0p1
pvdisplay
pvdisplay /dev/md0p1
vgs
vgs vgmage26
vgdisplay
vgdislplay vgmage26
實驗:擴展邏輯卷
1.先檢查需要擴展的大小,VG是否有足夠可用空間 vgs;vgdislplay
如果不夠則 創建pv 擴展卷組
pvcreate /dev/md2
vgextend vgmage26 /dev/md2
2.如足夠則擴展邏輯卷大小
lvextend -L 1G/+1G /dev/vgmage26/lvmage26_01 # lvextend -L 500M /dev/vg 擴展到500M +500M是擴展到500M
lvextend -l +100%FREE /dev/vgmage26/lvmage26_01 它并沒有立即生效,需要把新擴展邏輯卷增加用到文件中才能
3.擴展文件系統大小
resize2fs /dev/vgmage26/lvmage26_01
或
resize2fs /dev/vgmage26/lvmage26_01 500M 只增加到500M的文件系統,并格式化
如果是xfs文件系統 用xfs_growfs
xfs_growfs /dev/vg01/lv01
lvextend -L +500M -r /dev/vgmage26/lvmage26_01 可在lvextend 時加-r 直接一步到位,先擴展邏輯卷大小后直接增加文件系統大小
實驗:減小邏輯卷大小 僅支持Ext文件系統
1.umount /mnt/lvmage26_01
2.e2fsck -f /dev/vgmage26/lvmage26_01 掃描修復
3.resize2fs /dev/vgmage26/lvmage26_01 300M
4.lvreduce -L 300M /dev/vgmage26/lvmage26_01
5.mount
# mount /dev/vgmage26/lvmage26_01 /mnt/lvmage26_01/
實驗:將某塊盤從LVM中分離出來
1.先確保數據不在這塊PV上
用pvs查看
2.如果在這塊PV上,則將數據轉移到同卷組的其他PV上
pvmove /dev/pv1名 /dev/pv2名(可以不指定)# pvmove /dev/md126p1 /dev/sdg 將所有數據移至/dev/sdg
3.將pv從Vg中移出
vgreduce vg名 /dev/pv名 # vgreduce vgmage26 /dev/md126p1
4.刪除該盤的pv屬性 # pvremove vgmage26 /dev/md126p1
pvremove /dev/pv名
// 準備
在添加一個2g的硬盤
# pvcreate /dev/sdg 創建pv
# vgcreate /dev/sdg 創建vg
# vgextend vgmage26 /dev/sdg 擴展
# pvs 查看數據在哪個pv上再進行如上操作
實驗:將LVM遷移到其他主機
1.將數據移到目標磁盤對應的PV上。(該磁盤不要有其他與該PV無關的分區)
pvmove /dev/pv1名 /dev/pv2名
vgreduce vg名 /dev/pv(多余) 移動除要移動的PV以外的其他PV
vgreduce vg02 /dev/md126p1 /dev/md127
2.確保要遷移的VG名與目的系統沒有同名的VG
vgrename vgmage26 vg02
lvrename /dev/vg02/lvmage26_01 /dev/vg02/lv01 (非必須)
3.umount /mnt/lvmage26_01/
4.vgchange -an vg02 禁用VG上的所有LV 時vg成非激活狀態 1.# vgchange -ay vg02 vg為激活狀態
5.vgexport vg名 導出 1.#vgimport vg02取消被保護狀態
關機(如果支持熱插排,則不用關機),拔硬盤,插到目標主機上。# poweroff centos6操作結束
復制新建2G硬盤的路徑,在centos7里邊添加現有硬盤在centos6里復制路徑查找,添加進去
在centos7中操作
6.lsblk 查看沒有更新 echo‘- – -’/sys/class/scsi_host/host2/scan
7.pvscan
vgscan
lvscan
vgimport vg名
vgchange -ay vg名
8.vgimport vg02 看導入成功沒
9.mount /dev/vg名/lv名 /mnt/
#mount /dev/vg02/lv01 /mnt/lv02
#cd /mnt/lv02 查看數據是否成功遷移
LVM快照
lvcreate -L 10M -n lvmage-snap -s /dev/vgmage/lvmage 創建快照
lvcreate -L 10M -n lvmage-snap -s -p r /dev/vgmage/lvmage 創建只讀快照
lvremove /dev/vgmage/lvmage-snap 刪除快照
lvextend -L +300M/300M /dev/vgmage/lvmage-snap 快照擴展
使用快照恢復源邏輯卷
umount 源和快照
lvconvert –merge 快照名 (該操作成功會刪除快照)
mount 源
對有快照的邏輯卷進行擴展
1.umount 源和快照
2.lvchange -an 源 將源及快照設置為inactive
3.lvextend -L -r 200M 源名字 (-r不一定能用)
4.e2fsck -f 掃描
5.resize2fs/xfs_growfs …
建議,直接刪除快照,可以在線擴展邏輯卷,最后重建快照
sed
-n:不輸出模式空間內容到屏幕,即不自動打印
-e: 多點編輯,對每行處理時,可以有多個Script
-f: 把Script寫到文件當中,在執行sed時-f 指定文件路徑,如果是多個Script,換行寫
-r: 支持擴展的正則表達式
-i: 直接將處理的結果寫入文件
-i文件名 在將處理的結果寫入文件之前備份一份
script
地址定界:
(1) 不給地址:對全文進行處理
sed -n ‘p’ 文件
(2) 單地址:
: 指定的行
sed -n ‘2p’ 文件
/pattern/:被此處模式所能夠匹配到的每一行
sed -n ‘/linux/p’文件
(3) 地址范圍:
,#
sed -n ‘2,3p’
,+#
sed -n ‘2,+1p’
/pat1/,/pat2/
sed -n ‘/redhat/,/linux/p’
,/pat1/
sed -n ‘2,/linux/p’
(4) ~:步進
sed -n ‘1~2p’ 只打印奇數行
sed -n ‘2~2p’ 只打印偶數行
編輯命令
d: 刪除模式空間匹配的行,并立即啟用下一輪循環
sed ‘2d’ pets
p:打印當前模式空間內容,追加到默認輸出之后
sed ‘2p’ pets
a []text:在指定行后面追加文本,支持使用\n實現多行追加
sed ‘2a\123\n456\n789’ pets
i []text:在行前面插入文本
sed ‘2i\123\n456\n789’ pets
c []text:替換行為單行或多行文本
sed ‘2c\123\n456\n789’ pets
w /path/somefile: 保存模式匹配的行至指定文件
sed -n ‘3w /root/3.file’ pets
r /path/somefile:讀取指定文件的文本至模式空間中匹配到的行后
sed ‘3r /root/mage.txt’ pets
=: 為模式空間中的行打印行號
sed ‘=’ pets.bak
!:模式空間中匹配行取反處理
sed -n ‘2!p’ pets
s///:查找替換,支持使用其它分隔符,s@@@,s###替換標記:
g: 行內全局替換
sed ‘s/dog/cat/g’ pets
1、刪除/etc/fstab文件中所有以#開頭,后面至少跟一個空
白字符的行的行首的#和空白字符
sed -r “/^#[[:space:]]/s/^#[[:space:]]+([^[:space:]])/\1/” fstab
sed -r ‘s/^#[[:space:]]+//’ fstab
3、在centos6系統/root/install.log每一行行首增加#號
sed ‘s/^/#/g’ /root/install.log
4、在/etc/fstab文件中不以#開頭的行的行首增加#號
cat /etc/fstab |sed ‘s/^[^#]/#&/’
5、處理/etc/fstab路徑,使用sed命令取出其目錄名和基名
echo /etc/sysconfig/network-scripts/ |sed -r ‘s#(^/.*/)([^/].*/?$)#a:\1\nb:\2#’
6、利用sed 取出ifconfig命令中本機的IPv4地址
ifconfig eth0 |sed -n ‘2p’ |sed ‘s#^.addr:##g’ |sed ‘s# Bcas.$##g’
ifconfig eth0 |sed -n -e ‘2s#^.addr:##g’ -e ‘s# Bcas.$##gp’
sed -n ‘n;p’ FILE 顯示偶數行
sed ‘1!G;h;$!d’ FILE 倒序顯示
sed -n ‘1!G;h;$p’ 倒序顯示
seq 7 |sed ‘n;d’ 顯示奇數
sed ‘N;D’ 顯示最后一行
sed ‘$!d’ 顯示最后一行
sed ‘G’ 每行之間加空行
sed ‘g’ 把每行內容替換成空行
sed ‘/^$/d;G’ 確保每一行下面都有一個空行
原創文章,作者:MOMO,如若轉載,請注明出處:http://www.www58058.com/85455