LVM練習及quota和dd命令

練習

1、創建一個至少有兩個PV組成的大小為20G的名為testvg的

VG;要求PE大小為16MB, 而后在卷組中創建大小為5G的邏

輯卷testlv;掛載至/users目錄

第一步!首先準備足夠大的硬盤來實驗

[root@Cloud /]#lsblk  #添加了/dev/sdb/c硬盤 
NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                  11:0    1  3.7G  0 rom  
sda                   8:0    0  200G  0 disk 
├─sda1                8:1    0  200M  0 part /boot
├─sda2                8:2    0   60G  0 part 
│ ├─vg0-root (dm-0) 253:0    0   20G  0 lvm  /
│ ├─vg0-swap (dm-1) 253:1    0    2G  0 lvm  [SWAP]
│ ├─vg0-usr (dm-6)  253:6    0   10G  0 lvm  /usr
│ └─vg0-var (dm-7)  253:7    0   20G  0 lvm  /var
└─sda3                8:3    0    1G  0 part 
sdc                   8:32   0   20G  0 disk 
sdb                   8:16   0   15G  0 disk

第二部!格式成LVM分區,具體操作就略過了,注意:在分區時記得把分區該為8e分區

[root@Cloud /]#fdisk -l |grep 'sd[bc]' #顯示LVM分區
Disk /dev/sdc: 21.5 GB, 21474836480 bytes
/dev/sdc1               1        1306    10490413+  8e  Linux LVM
Disk /dev/sdb: 16.1 GB, 16106127360 bytes
/dev/sdb1               1        1306    10490413+  8e  Linux LVM

第三部!創建為pv卷

[root@Cloud /]#pvcreate /dev/sdb1 /dev/sdc1 #創建pv卷
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdc1" successfully created

第四部!創建vg組

[root@Cloud /]#vgcreate -s 16M testvg /dev/sdb1 /dev/sdc1 #創建卷名為testvg的vg卷,vg卷中包含/dev/sdb\c1
  Volume group "testvg" successfully created
[root@Cloud /]#vgdisplay testvg  #顯示testvg
  --- Volume group ---
  VG Name               testvg
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               20.00 GiB #vg總大小
  PE Size               16.00 MiB #pe大小
  Total PE              1280
  Alloc PE / Size       0 / 0   
  Free  PE / Size       1280 / 20.00 GiB
  VG UUID               v4d6Uj-vPTv-FGTA-sVFx-sB15-FTGr-o7AQuJ

第四部!創建lv卷

   

[root@Cloud /]#lvcreate -L 5G -n testlv /dev/testvg #創建lv卷  vg組不支持補全。
  Logical volume "testlv" created.
[root@Cloud /]#lvdisplay /dev/testvg/testlv |grep 'LV Size' #查看lv大小 ,全路徑查看
  LV Size                5.00 GiB

之后就是都比較簡單就不截圖了,直接命令表示

 mkdir /users #創建掛載點
    mke2fs -j /dev/testvg/testlv #格式化,系統隨意
    mount /dev/testvg/testlv /users #掛載 就OK了!

注意:如果要刪除以上操作順序操作為

    取消掛載、刪除lv卷、刪除vg組、刪除pv卷、刪除分區!

[root@Cloud /]#umount /users #取消掛載
[root@Cloud /]#lvremove /dev/testvg/testlv  #刪除lv卷
[root@Cloud /]#vgremove testvg #刪除vg組
[root@Cloud /]#pvcreate /dev/sdb1 /dev/sdc1 #刪除pv卷
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdc1" successfully created
[root@Cloud /]#dd if=/dev/zero of=/dev/sdb bs=512 count=1 #破壞分區!
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.0231221 s, 22.1 kB/s
[root@Cloud /]#dd if=/dev/zero of=/dev/sdc bs=512 count=1 #破壞分區!

有的時候分區格式化后lsblk還是查看不正常,可以使用partx -d /dev/DEVICE #cent6下使用

    


? 2、新建用戶archlinux,要求其家目錄為/users/archlinux

,而后su切換至archlinux用戶,復制/etc/pam.d目錄至自己

的家目錄

[root@Cloud /]#useradd -d /users/archlinux archlinux #新建用戶archlinux
[archlinux@Cloud ~]# getent passwd archlinux #查看archlinux用戶信息
archlinux:x:3002:3002::/users/archlinux:/bin/bash
[root@Cloud /users]#su - archlinux #切換用戶
[archlinux@Cloud ~]$ cp -r  /etc/pam.d/ ./ #復制目錄/etc/pam.d到當前目錄
[archlinux@Cloud ~]$ ll pam.d/ -d #顯示其信息
drwxr-xr-x 2 archlinux archlinux 4096 Sep  9 12:30 pam.d/


? 3、擴展testlv至7G,要求archlinux用戶的文件不能丟失

[root@Cloud /users]#lvextend -L 7G /dev/testvg/testlv #擴展至7G

  Size of logical volume testvg/testlv changed from 5.00 GiB (320 extents) to 7.00 GiB (448 extents

[root@Cloud /users]#lvs /dev/testvg/testlv #簡要查看拓展的lv卷

  LV     VG     Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  testlv testvg -wi-ao—- 7.00g  #顯示為7G,成功

[root@Cloud /users/archlinux]#ll -d /users/archlinux/pam.d/ #數據大小未變

drwxr-xr-x 2 archlinux archlinux 4096 Sep  9 12:30 /users/archlinux/pam.d/

[root@Cloud /etc/pam.d]#ll /users/archlinux/pam.d/ |wc -l

56

   


? 4、收縮testlv至3G,要求archlinux用戶的文件不能丟失

[root@Cloud /users/archlinux]#lvreduce -L 3G /dev/testvg/testlv

  WARNING: Reducing active and open logical volume to 3.00 GiB.

  THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce testvg/testlv? [y/n]: y

  Size of logical volume testvg/testlv changed from 7.00 GiB (448 extents) to 3.00 GiB (192 extents).

  Logical volume testlv successfully resized.

[root@Cloud /users/archlinux]#lvs /dev/testvg/testlv

  LV     VG     Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  testlv testvg -wi-ao—- 3.00g     

[root@Cloud /users/archlinux]#ll -d /users/archlinux/pam.d/ #數據大小未變

drwxr-xr-x 2 archlinux archlinux 4096 Sep  9 12:30 /users/archlinux/pam.d/

 

[root@Cloud /etc/pam.d]#ll /users/archlinux/pam.d/ |wc -l

56


? 5、對testlv創建快照,并嘗試基于快照備份數據,驗正快照

的功能

[root@Cloud /users/archlinux]#lvcreate -s -L 512M -n mylv-snap -p r /dev/testvg/testlv #創建快照
  Logical volume "mylv-snap" created.
[root@Cloud /users/archlinux]#lvdisplay /dev/testvg/mylv-snap #顯示快照詳細信息
  --- Logical volume ---
  LV Path                /dev/testvg/mylv-snap
  LV Name                mylv-snap
  VG Name                testvg
  LV UUID                LVpNHy-ol30-OZCX-oo1J-d2cZ-2xhb-JrsAiw
  LV Write Access        read only
  LV Creation host, time Cloud.GO, 2016-09-09 14:28:50 +0800
  LV snapshot status     active destination for testlv
  LV Status              available
  # open                 0
  LV Size                3.00 GiB
  Current LE             192
  COW-table size         512.00 MiB
  COW-table LE           32
  Allocated to snapshot  0.00%
  Snapshot chunk size    4.00 KiB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:5
[root@Cloud /users/archlinux]#mount /dev/testvg/mylv-snap /mnt/snap/ #掛載快照
mount: block device /dev/mapper/testvg-mylv--snap is write-protected, mounting read-only
[root@Cloud /users/archlinux]#ll /mnt/snap/archlinux/pam.d/|wc -l #快照還有56個
56
[root@Cloud /users/archlinux]#rm /users/archlinux/pam.d/a #刪除原有數據
abrt-cli-root   atd             authconfig      authconfig-gtk  authconfig-tui
[root@Cloud /users/archlinux]#rm /users/archlinux/pam.d/atd 
rm: remove regular file `/users/archlinux/pam.d/atd'? yes
[root@Cloud /users/archlinux]#rm /users/archlinux/pam.d/a*
rm: remove regular file `/users/archlinux/pam.d/abrt-cli-root'? yes
rm: remove regular file `/users/archlinux/pam.d/authconfig'? yes
rm: remove regular file `/users/archlinux/pam.d/authconfig-gtk'? yes
rm: remove regular file `/users/archlinux/pam.d/authconfig-tui'? yes
[root@Cloud /users/archlinux]#ll /users/archlinux/pam.d/| wc -l
51 #只剩下51個文件
[root@Cloud /]#cp -anr /mnt/snap/archlinux/pam.d/ /users/archlinux/ #恢復快照
[root@Cloud /]#ll /users/archlinux/pam.d/|wc -l #查看文件個數
56


磁盤配額

在內核中執行

?以文件系統為單位啟用

?對不同組或者用戶的策略不同

根據塊或者節點進行限制

?執行軟限制(soft limit)

?硬限制(hard limit)

?初始化

?分區掛載選項:usrquota、grpquota

?初始化數據庫:quotacheck

?執行

?開啟或者取消配額:quotaon、quotaoff

?直接編輯配額:edquota username

?在shell中直接編輯:

setquota usename 4096 5120 40 50 /foo

?定義原始標準用戶

報告

? 用戶調查:quota

? 配額概述:repquota

? 其它工具:warnquota

[root@Cloud /home]#lsblk |grep 'sdc' # #使用用的磁盤/dev/sdc1
sdc                   8:32   0   20G  0 disk 
└─sdc1                8:33   0   20G  0 part /home
[root@Cloud /]#mke2fs -t ext4 -L /home /dev/sdc1 #格式化
[root@Cloud /]#mkdir /mnt/home #創建空目錄用來掛載
[root@Cloud /]#mount /dev/sdc1 /mnt/home/ #掛載
[root@Cloud /home]#mv * /mnt/home/#移動/home下的數據
root@Cloud /home]#cd /mnt/home/
[root@Cloud /mnt/home]#ls #顯示掛載數據
lala  lost+found  mage  moon  user
[root@Cloud /mnt/home]#ll -h #詳細信息
total 32K
drwx------ 4 lala root 4.0K Jul 28 17:47 lala
drwx------ 2 root root  16K Sep  8 19:26 lost+found
drwx------ 4 mage mage 4.0K Jul 27 19:11 mage
drwx------ 4 moon moon 4.0K Jul 28 17:52 moon
drwx------ 4 user user 4.0K Jul 28 17:44 user
[root@Cloud /]#vim /etc/fstab #掛載到/home
UUID="f5e56c7d-d3e4-4be1-b9f3-750b2f582e31"  /home ext4 defaults,usrquota,grpquota 0 0
[root@Cloud /]#mount -a #啟用
[root@Cloud /home/lala]#mount |grep '/dev/sdc1' #查看掛載的信息
/dev/sdc1 on /home type ext4 (rw,usrquota,grpquota)
[root@Cloud /]#umount /mnt/home #卸載 
[root@Cloud /]#ll /home/ #查看掛載分區加入usrquota,grpquota
total 32
drwx------ 4 lala root  4096 Jul 28 17:47 lala
drwx------ 2 root root 16384 Sep  8 19:26 lost+found
drwx------ 4 mage mage  4096 Jul 27 19:11 mage
drwx------ 4 moon moon  4096 Jul 28 17:52 moon
drwx------ 4 user user  4096 Jul 28 17:44 user
[root@Cloud /home]#quotacheck -cug /home #創建quota數據庫
[root@Cloud /home]#ls #信息。
aquota.group  aquota.user  lala  lost+found  mage  moon  user
[root@Cloud /home]#getenforce  #關于權限
Disabled #如果啟用要改成禁用
[root@Cloud /home]#quotaon -p /home #查看quota是否看起!
group quota on /home (/dev/sdc1) is off
user quota on /home (/dev/sdc1) is off
[root@Cloud /home]#quotaon /home #開啟home的quota
[root@Cloud /home]#quotaon -p /home/ #查看quota
group quota on /home (/dev/sdc1) is on
user quota on /home (/dev/sdc1) is on
[root@Cloud /home]#edquota lala #設置lala用戶的磁盤配額
 #關于相信信息
Disk quotas for user lala (uid 3000):           #soft警告
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sdc1                        32          0          0          8        0        0
                     #已使用塊數量(單位為k) (軟數據大?。ㄓ矓祿笮。?inode數量)(軟數量大?。?硬文件數量)
[root@Cloud /home/lala]#quota lala #更改的信息
Disk quotas for user lala (uid 3000): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sdc1      32    1000    5000               8       0       0      
[root@Cloud /home/lala]#repquota /home #查看//home的所有quota
*** Report for user quotas on device /dev/sdc1
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      20       0       0              3     0     0       
mage      --      36       0       0              9     0     0       
user      --      36       0       0              9     0     0       
lala      --      32    1000    5000              8     0     0       
moon      --      32       0       0              8     0     0       
  
[root@Cloud /home/lala]#edquota -p lala mage #lala和mage同一quota
[root@Cloud /home/lala]#repquota /home #查看/home所有quota
*** Report for user quotas on device /dev/sdc1
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      20       0       0              3     0     0       
mage      --      36    1000    5000              9     0     0       
user      --      36       0       0              9     0     0       
lala      --      32    1000    5000              8     0     0       
moon      --      32       0       0              8     0     0 
[root@Cloud /home/lala]#setquota user 10000 20000 0 0 /home #一步到位設置quota
[root@Cloud /home/lala]#quota user #查看quota配置
Disk quotas for user user (uid 501): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sdc1      36   10000   20000               9       0       0

     

   

dd命令

dd命令用于復制文件并對原文件的內容進行轉換和格式化處理。

用法:

if=/PATH/FROM/SRC

    從 file 中讀而不是標準輸入。 

of=/PATH/TO/DEST

    寫到 file 里去而不是標準輸出。

bs=#:block size, 復制單元大小

count=#:復制多少個bs

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個記錄

conv=conversion[,conversion…] 用指定的參數轉換文件。

轉換參數:

?ascii 轉換EBCDIC 為ASCII。

?ebcdic 轉換ASCII 為EBCDIC。

?block 轉換為長度為cbs 的記錄,不足部分用空格填充。

?unblock 替代cbs長度的每一行尾的空格為新行。

?lcase 把大寫字符轉換為小寫字符。

?ucase 把小寫字符轉換為大寫字符。

?swab 交換輸入的每對字節。

?noerror 出錯時不停止。

?notrunc 不截短輸出文件。

?sync 把每個輸入塊填充到ibs個字節,不足部分用空(NUL)字符補齊

磁盤拷貝:

ddif=/dev/sdaof=/dev/sdb

備份MBR:

ddif=/dev/sdaof=/tmp/mbr.bakbs=512 count=1

破壞MBR中的bootloader:

ddif=/dev/zero of=/dev/sdabs=64 count=1 seek=446

?有二進制文件fileA,size>2K?,F在想從第64個字節位置開始讀取,需要讀取的大小是128Byts。又有fileB, 想把上面讀取到的128Bytes寫到第32個字節開始的位置,替換128Bytes,請問如何實現?

#ddif=fileAof=fileBbs=1 count=128 skip=63 seek=31 conv=notrunc

備份:

dd if=/dev/sdx of=/dev/sdy

將本地的/dev/sdx整盤備份到/dev/sdy

dd if=/dev/sdx of=/path/to/image

將/dev/sdx全盤數據備份到指定路徑的image文件

dd if=/dev/sdx | gzip >/path/to/image.gz

備份/dev/sdx全盤數據,并利用gzip工具進行壓縮,保存到指定路徑

恢復:

dd if=/path/to/image of=/dev/sdx

將備份文件恢復到指定盤

gzip -dc /path/to/image.gz | dd of=/dev/sdx

將壓縮的備份文件恢復到指定盤

拷貝內存資料到硬盤

dd if=/dev/mem of=/root/mem.bin bs=1024

將內存里的數據拷貝到root目錄下的mem.bin文件

?從光盤拷貝iso鏡像

dd if=/dev/cdrom of=/root/cd.iso

拷貝光盤數據到root文件夾下,并保存為cd.iso文件

?銷毀磁盤數據

dd if=/dev/random of=/dev/sda1

利用隨機的數據填充硬盤,在某些必要的場合可以用來銷毀數據。執行此操作以后,/dev/sda1將無法掛載,創建和拷貝操作無法執行。

得到最恰當的block size

dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file

dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file

dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file

dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file

通過比較dd指令輸出中所顯示的命令執行時間,即可確定系統最佳的block size大小

 

測試硬盤讀寫速度

dd if=/root/1Gb.file bs=64k | dd of=/dev/null

dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000

通過上兩個命令輸出的執行時間,可以計算出測試硬盤的讀/寫速度

修復硬盤

dd if=/dev/sda of=/dev/sda

當硬盤較長時間(比如1,2年)放置不使用后,磁盤上會產生消磁點。當磁頭讀到這些區域時會遇到困難,并可能導致I/O錯誤。當這種情況影響到硬盤的第一個扇區時,可能導致硬盤報廢。上邊的命令有可能使這些數據起死回生。且這個過程是安全,高效的。

  

原創文章,作者:ladsdm,如若轉載,請注明出處:http://www.www58058.com/44804

(1)
ladsdmladsdm
上一篇 2016-09-09
下一篇 2016-09-09

相關推薦

  • 數據結構知識點(list,tuple,冒泡法)

    分類 數值型 int、float、complex、bool 序列對象 字符串str、列表list、tuple 鍵值對 集合set、字典dict 數值型 complex:有實數和虛數部分組成 float:有整數和小數組成。只有雙精度 類型轉換 int(X) 返回一個整數 float(x) 返回一個浮點數 complex(x)、complex(x,y) 返回一個…

    2017-09-25
  • 分區”魔術師”的磁盤管理

    設備文件 I/O Ports: I/O設備地址 一切皆文件: open(), read(), write(), close() 設備類型: 塊設備: block,存取單位“塊”,磁盤 字符設備: char,存取單位“字符”,鍵盤 設備文件:關聯至一個設備驅動程序,進而能夠跟與之對應 硬件設備進行通信 設備號碼: 主設備號: major number, 標識設…

    Linux干貨 2016-08-29
  • Linux文本處理三劍客之一grep

            終于又到了一周一篇博客的日子 在這學習已經三周了,慢慢養成了寫博客的好習慣,也慢慢的懂得了怎么寫博客。這周給我印象最深刻的就是正則表達式,原本打算要寫前幾天所學的內容,但是昨天學到正則表達式讓我有點懵,所以我今天會用一天的時間去給大家詳細講解正則表達式,爭取讓那些和我一樣困解的人能夠豁然開朗,也正是因為…

    2017-07-29
  • N25-第一周作業

    第一周博客作業 1.描述計算機的組成及其功能 2.按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別 3.描述Linux哲學思想,并按照自己的理解對其進行解釋性描述。 4.說明Linux系統上命令的使用格式:詳細介紹,ifconfg,echo,tty,startx,export pwd,history,shutdown,poweroff,rebo…

    Linux干貨 2016-12-02
  • N22-草稿

    testing

    Linux干貨 2016-08-08
  • Linux keepalived高可用集群

                       Linux keepalived高可用集群 keepalived簡介:    keepalived是為了高可用ipvs集群而設計的,主要用作realserver的健康狀態檢測,如果有一臺web…

    系統運維 2016-11-18
欧美性久久久久