磁盤管理

硬盤物理結構
     扇區  磁頭  磁道   柱面   磁道數
     扇區*一個磁道上的扇區個數*磁頭數=柱面
     柱面*磁道數=硬盤大小
     一個扇區512字節     最小單位
     單位  C         H            S 
          扇區      柱面       磁盤
MBR
       硬盤中的前512字節,第一個扇區,以55aa結束的認為是有分區的,沒有則認為無。
GPT
     硬盤前512字節模擬MBR創造一個分區,以55aa結束。
Hexdump   將二進制文件轉換成十六進制或八進制顯示
dd        轉換或者輔助一個文件。
分區

Fdisk     操作硬盤分區或分區表
      /dev/sdX 查看硬盤分區信息
      -c (centos6) 打開或禁用dos模式
      -u  (centos6) 切換顯示的單位(扇區/柱面)
      -c (centos7) -c=dos -c=nondos
      -u  (centos7)  -u=cylinders  -u=sectors
      fdisk /dev/sdX  進行分區
      m 幫助
      n 建立分區
      d 刪除分區
      p 顯示分區信息
      t 轉換分區類型
      a 將指定分區設置/取消 活動分區
      L 查看分區類型
      o 重建分區表
      v 驗證分區表,顯示剩余沒有被分區劃分的扇區數量
      g 創建GPT格式的分區(centos7)
      q 退出不保存
      w 退出并保存,不保存,所有的修改都不生效

Sync      強制同步yingpan數據
echo ‘- – -’ > /sys/class/scsi_host/host0/scan
scan   內存通信設備    傳輸信號 加載硬盤。
Lsblk     列出塊設備,分區列表
 cat /proc/partitions
查詢內存中存儲的 磁盤信息
parted /dev/sdX
    mklabel msdos/gpt
    help
    mkpart
parted /dev/sdX mkpart primary 1 1000    難用 ?。。?
gdisk   操作方式與fdisk相似 
partprode  當對系統所在的硬盤進行分區修改操作后,內存不會重讀分區表,需要使用partprobe強制重讀,centos6  有bug。
partx -a /dev/sdX  向內存中增加分區更新
partx  -a  –nr   【N-M】 /dev/sdX  從內存中刪除分區更新
mkfs.ext4 /dev/sdb1 
mkfs -t extX/xfs/btrfs/vfat  /dev/sdX
mke2fs -t extX  /dev/sdX 
 與磁盤添加文件系統。
blkid  查看所有的塊設備
          -L  LABEL  用卷名查找塊設備
          -U  UUID   用UUID查找塊設備   
文件系統
mkfs  創建文件系統
     -L   創建時設置卷標
     -t     創建時文件系統
     -b     塊設備大小
     -m     管理員預留空間
     -o       調整文件系統的默認掛載選項,
     -U     指定UUID號
     -g     塊組  設置
mke2fs    專用來創建ext格式類型的文件系統的命令。
     -t     文件系統類型 ext2、ext3、ext4
     -m     管理員預留大小
     -g     塊組設置
tuen2fs   -l   顯示詳細的超級快信息
               -L  設置卷標
               -o

resize2fs    可以增加或減小文件系統的大小
findfs
    指定LABEL或UUID顯示分區名
tune2fs /dev/sda10  修改文件系統信息
    -l 顯示文件系統信息(與dumpe2fs -h 信息基本一致)
dumpe2fs /dev/sda10  查看文件系統信息:superblock信息及block group信息
    -h 不顯示block group而只顯示superblock 與tune2fs -l一致
fsck/e2fsck 先卸載再修復
    -t filetype
    -f 強制修復
    -y 非交互式
    -r 交互式
    -p 自動修復
掛載
mount 設備名 掛載點
    -t 指定文件系統類型
    -r 只讀掛載
    –remount,ro|rw  也會新/etc/fstab中的選項,如果與指定的沖突,則remount后指定的優先。
    -n 隱藏掛載信息不顯示,但在/proc/mounts可以查到
    -a 讀取/etc/fstab,掛載其中沒有掛載的設備
    -L ‘LABEL’: 以卷標指定掛載設備
?  -U ‘UUID’: 以UUID指定要掛載的設備
    -B –bind 目錄掛目錄
    -o 選項
        sync,async 同步,異步(defaults)
        atime(defaults),noatime  是否在讀訪問時更新atime
        diratime(defaults),nodiratime
        auto(defaults)/noauto 寫在/etc/fstab當中的分區,是否在mount -a時被掛載
        exec(defatuls)/noexec 在該分區所掛載的目錄中的腳本是否可以執行。
        dev(defaults)/nodev:是否支持在此文件系統上使用設備文件
        suid(defaults)/nosuid:不否支持suid和sgid權限
        remount:重新掛載
        ro:只讀
        rw:讀寫(defaults)
        user/nouser(defaults):是否允許普通用戶掛載此設備,默認管理員才能掛載
        acl:啟用此文件系統上的acl功能
        defaults 默認,見以上中的(defaults)
開機掛載 配置文件
          /etc/fstab
lsof     設備名或掛載點        查詢在該掛載點上的運行的進程
fuser     -v 掛載點
             -km     掛載點          強制結束所有執行在掛載點上的進程
umount     設備名/掛載點
/etc/fstab    filesystem  table
網絡地址掛載
172.17.253.164:/common  /mnt/nfs                nfs     defaults        0 0
//172.17.X.X/shares  /mnt/share  cifs   defaults,username=test,password=te st 0 0
增加swap   
fdisk/gfisk   添加一個分區類型設置為82
partx  -a   /dev/sd? (centos6)   parprode (centos7)
mkswap     /dev/sd??   也可以對文件做
swapon     /dev/sd??  手動激活
          swapon   -p   10   /dev/sd??   指定優先級    數字越大優先級越高  系統設置為負數
swapoff /dev/sd??  手動關閉
     swapoff  -a    禁用所有swap
swapon  -s   顯示優先級
開機自動激活   寫入 /etc/fstab  后swapon  -a
LABEL=SWAPA(也可以寫分區名或UUID)             swap                    swap    defaults,pri=X        0 0
移動介質鏈接監測
tail -f /var/log/message
udevadm monitor
光盤掛載
mount -o loop /root/centos69_1.iso /mnt/centos69
/root/centos69_1.iso    /mnt/centos69           iso9660 defaults,loop 0 0
創建iso文件
cp /dev/cdrom /root/centos7.iso   源是設備,可以直接復制
mkisofs -r -o /root/etc.iso /etc  源是目錄或文件
刻錄光盤
wodim –v –eject centos.iso
df
    -h 以人類閱讀方式
    -H 以人類閱讀方式 1000為單位
    -T 顯示文件系統類型
    -a 顯示所有的掛載信息包含bind
    -i 顯示inodes的使用信息
du   查看一個目錄與目錄下文件的總大小
     -h 以人類閱讀方式
    -s 顯示總和
dd
of=file 寫到所命名的文件而不是到標準輸出
if=file 從所命名文件讀取而不是從標準輸入
bs=size 指定塊大?。仁鞘莍bs也是obs)
ibs=size 一次讀size個byte
obs=size 一次寫size個byte
cbs=size 一次轉化size個byte
skip=blocks 從開頭忽略blocks個ibs大小的塊
seek=blocks 從開頭忽略blocks個obs大小的塊
count=n 只拷貝n個記錄
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
dd if=/dev/sda of=/dev/sda
0  關機                     1  halt
1  單用戶模式  僅root登錄無需輸入密碼  10
3  多用戶模式                  30
4  用戶自定義               
5  多用戶模式+圖形化        31
6  重啟                     1  reboot
poweroff   init 0
reboot       init 6
掛載實驗
實驗:遷移/home
init 1
vim /etc/selinux/config
    SELINUX=permissive
fdisk /dev/sda
partx -a /dev/sda
mkfs.ext4 /dev/sda6
mount /dev/sda6 /mnt
cp -a /home/* /mnt
備份home
mkdir /home
vim /etc/fstab
    /dev/sda6  /home ext4 defaults,usrquota,grpquota 0 2
reboot
quotacheck -cug /home
quotaon /home
quotaoff /home
edquota -u/g  username
quota 查看自己的
    quota -vu/vg username
repquota -avu  查看所有用戶的quota
         -avg  查看所有組的quota
setquota -u liubei 20M 30M 200 300 /home
edquota -p liubei guanyu
warnquota -u 給所有超過限制的用戶發郵件
          -g 當組的限制超出時,給組管理員發郵件,管理員需在/etc/quotagrpadmins 中指定 groupname: username
raid0 條帶化 chunk最小寫入單位 至少2塊盤 空間大小 單塊磁盤大小*n
raid1 鏡像  1/n   讀性能提升,寫入比單塊盤慢  空間始終是一塊盤的大小   容錯率高  可以壞  n-1塊盤
raid10 容錯高于raid01 但空間損失更多,讀寫性能 提升 造價高。
raid5     增加一塊校驗盤
raid陣列
創建raid
mdadm -C /dev/mdo -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}
          -C /dev/mdX(設備名)      創建設備名
          -a yes     當沒有所有的/dev/mdX 設備時,自動創建該設備
          -l  數字      指定類型的raid
          -n  數字   指定成員數
          -x  數字     指定備用盤數
          -c  數字     指定chunk大小,     僅限raid0     raid5
          /dev/sdX…   指定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
LVM
物理卷
pvcreate  /dev/設備名   創建物理卷   (可以是raid,硬盤,分區,文件)
pvremove     /dev/設備名     刪除物理卷
pvs     簡略顯示物理卷信息
pvdisplay     詳細顯示物理卷信息
pvmove     將該物理卷上的數據移出該物理卷
VG組
vgcreate  VG名  /dev/設備名 (可以多個)
     -s     指定PE大小(PE作為VG的最小分割單位) 默認4M   最大8M
vgchange  -s  可向下更改PE大小
vgreduce     VG名  /dev/設備名     減少一個VG組的成員
vgextend     VG名  /dev/設備名     增加一個VG組的成員
vgs     簡略查看VG的信息   跟名字可以查看單個VG的簡略信息
vgdisplay 詳細查看VG信息  跟名字可以查看單個VG的詳細信息
邏輯卷
lvcreate 創建邏輯卷
示例  lvcreate -L  大小   -n  名字    vg名
     -l  數字     以PE為單位的個數
     -L #{K,M}  向上靠攏PE整數個的數值
     lvcreate -l # vgmage26 /dev/vgmage26/lv_0 
     lvcreate -L #M vgmage26 /dev/vgmage26/lv_0
lvextend 擴展邏輯卷大小
lvremove     刪除一個邏輯卷
lvreduce     減少一個邏輯卷大小
lvs 簡略顯示邏輯卷信息
lvdisplay     詳細顯示邏輯卷信息
實驗:
擴展邏輯卷
1.先檢查需要擴展的大小,VG是否有足夠可用空間
如果不夠則
pvcreate /dev/md2
vgextend vgmage26 /dev/md2
2.如足夠則擴展邏輯卷大小
lvextend -L 1G/+1G  /dev/vgmage26/lvmage26_01
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
實驗:將某塊盤從LVM中分離出來
1.先確保數據不在這塊PV上
  用pvs查看
2.如果在這塊PV上,則將數據轉移到同卷組的其他PV上
 pvmove /dev/pv1名 /dev/pv2名(可以不指定)
3.將pv從Vg中移出
 vgreduce vg名 /dev/pv名
4.刪除該盤的pv屬性
 pvremove /dev/pv名
實驗:將LVM遷移到其他主機
1.將數據移到目標磁盤對應的PV上。(該磁盤不要有其他與該PV無關的分區)
    pvmove /dev/pv1名 /dev/pv2名
    vgreduce vg名 /dev/pv(多余)  移動除要移動的PV以外的其他PV
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
5.vgexport vg名
關機(如果支持熱插排,則不用關機),拔硬盤,插到目標主機上。
6.pvscan
  vgscan
  lvscan
  vgimport vg名
  vgchange -ay vg名
7.mount /dev/vg名/lv名 /mnt/
lvm快照
lvcreate -L 大小{M,G,K} -n 快照名稱 -s -p r /dev/vgmage/lvmage 創建快照
     -L    創建快照大小
     -s     指定哪個文件的快照
     -p     設定快照權限 如:r   過著rw
lvremove 快照名稱     刪除快照
lvextend -L +300M/300M   快照名稱   擴展快照
恢復源和快照
umount   源和快照
lvconvert –merge  快照明   該操作會刪除快照
mount  源
對有快照的邏輯卷進行擴展
1.umount 源和快照
2.lvchange -an 源 將源及快照設置為inactive
3.lvextend -L -r 200M 源名字 (-r不一定能用)
4.e2fsck -f 掃描
5.resize2fs/xfs_growfs  …
建議,直接刪除快照,可以在線擴展邏輯卷,最后重建快照
作業:
1、創建一個至少有兩個PV組成的大小為20G的名為testvg的VG;要求PE大小為16MB, 而后在卷組中創建大小為5G的邏輯卷testlv;掛載至/users目錄
ehco ‘- – -‘ > /sys/class/scsi_host/host2/scan
pvcreate /dev/sdX
vgcreate -s 16M testvg /dev/sdX
lvcreate -L 5G -n testlv testvg
mke2fs -t ext4 /dev/testvg/testlv
mkdir /users
mount /dev/tsetvg/tsetlv /users
2、新建用戶archlinux,要求其家目錄為/users/archlinux,而后su切換archlinux用戶,復制/etc/pam.d目錄至自己的家目錄
useradd -d /users/archlinux archlinux
cp -r /etc/pam.d
3、擴展testlv至7G,要求archlinux用戶的文件不能丟失
lvextend -L 7G -r /dev/tsetvg/tsetlv
4、收縮testlv至3G,要求archlinux用戶的文件不能丟失
umount /users
e2fsck -f /dev/tsetvg/tsetlv
resize2fs /dev/tsetvg/tsetlv 3G
lvreduce -L 3G /dev/tsetvg/tsetlv
mount /dev/tsetvg/tsetlv
5、對testlv創建快照,并嘗試基于快照備份數據,驗正快照的功能
umount 源和快照
lvconvert –merge 快照名  (該操作成功會刪除快照)
mount 源
     

原創文章,作者:何必呢,如若轉載,請注明出處:http://www.www58058.com/85360

(0)
何必呢何必呢
上一篇 2017-08-25
下一篇 2017-08-26

相關推薦

  • 學習新技術的10個建議

    我們生活在一個振奮人心的時代。我們可以越來越方便廉價地獲得大量學習資源。這些資源的傳播載體由最初的教室被變成了博客,技術論壇等。坐擁如此眾多的學習資源,我們沒有任何理由不去好好利用。隨之而來的問題便是如何在這知識的海洋中選擇自己的前進方向。在這篇文章中,我將簡要概括一些技術學習的建議,希望可以給你帶來一些啟發。 盡管我的建議主要涉及的是軟件開發方面,但是這些…

    Linux干貨 2015-03-20
  • NoSQL之MongoDB

    分布式系統理論 1、 CAP: 分布式系統只能滿足其中兩個? Consistency :一致性 Availibility:可用性 Partitions Tolerance :分區容錯性 C,A : SQL 傳統的數據庫。 兩段機制。 C,P :悲觀枷鎖機制,分布式加鎖機制。加鎖機制與SQL不太一樣。 這里的C為最終一致性。 放棄C后的特例,既可以保證可用性,…

    2018-01-09
  • 網絡知識點

    1. 實現異地搭建局域網的方法1>. 讓運行商拉專線,這是相當昂貴的。2>.  VPN (Virtual PrivateNetwork)  虛擬專用網絡 2. VPN的隧道協議主要有三種:PPTP、L2TP和IPSec。其中PPTP和L2TP協議工作在OSI模型的第二層,又稱為二層隧道協議;IPSec是第三層隧道協議。 2. …

    Linux干貨 2016-09-01
  • date命令常見用法。

    date是一個非常實用的小工具,可以查看時間,并且也可以添加選項去完成自己想完成的東西。

    Linux干貨 2017-11-13
  • 分享我自己的一個最小化安裝CentOS6的初始化腳本

    #!/bin/bash # #Filename:postinstall_init.sh #Description:系統安裝完成后,對系統進行一些配置,以符合自己的試驗環境 #Author:renpingsheng #Email:995883352@qq.com #Version:1.0 #Date:2017.5.5 setenforce 0 #更改selin…

    Linux干貨 2017-05-07
  • 網絡管理1

    一、知識整理 1、路由轉發:拆除第一層MAC地址,根據IP地址廣播,收到信號后重新封裝。一個路由器連接多個廣播域,一個交換機連接多個沖突域。 2、網絡用戶應用程序:WEB瀏覽器;即時消息;電子郵件;協作(視頻會議,vnc);web網絡服務;文件網絡服務;數據庫服務;中間件服務(Tomcat);安全服務(netfilter)。 3、HDR:報頭。Frame C…

    Linux干貨 2016-09-05
欧美性久久久久