跳到主要內容

附錄 - LPIC參考資料 - Linux Quick Reference Guide - 6th ed. - Daniele Raffo - LVM/LVM commands

     以下翻譯整理 Daniele Raffo 的 Linux Quick Reference Guide,期望對考LPIC level 1 跟 LPIC level 2 的讀者有幫助。該文翻譯已取得Daniele Raffo同意。專有名詞盡量使用國家教育研究院,雙語詞彙網對照http://terms.naer.edu.tw/detail/461156/

#LVM / LVM commands
 邏輯卷冊管理(Logical Volume Management, 以下簡稱LVM)源於一抽象功能,主要讓實體儲存與邏輯儲存之間,可以隨心所欲變更分區的檔案系統,LVM使用Linux裝置映射之特性(/dev/mapper)。

實體卷冊,包含磁碟機、分區與磁碟陣列皆可以被納入卷冊組(Volume Group)。一個卷冊組,可被分成固定量的小塊,稱之為實體延伸區(Physical Extents),且一對一的對應到該邏輯範圍。邏輯範圍可組成邏輯卷冊(Logical Volume),讓Linux檔案系統建立在其上。 

如何建立邏輯磁碟容量
1. 在機器上建立新實體或虛擬磁碟(以下爲指令,#後方爲說明)

2. lsblk                                    
#確認已辨認之磁碟,如 /dev/sda

3. fdisk /dev/sda                      
#產生新分區(區形態爲0x8E = Linux LVM)
此步驟非必要做,怕其他作業系統無法辨認LVM而將LVM分區視為無分區的空磁碟。

4. pvcreate /dev/sda1                          
#初始化實體卷冊來讓LVM使用

5. vgcreate -s 8M myvg0 /dev/sda1 
#建立卷冊組,並定義物理延伸區大小爲8Mb(預設爲4Mb)

or vgextend myvg0 /dev/sda1
#加入一個可辨認的的實體卷冊到已存在的卷冊組

6. lvcreate -L 1024M -n mylv myvg0
#建立邏輯卷冊

7. mkfs -t ext3 /dev/myvg0/mylv
#在邏輯卷冊上建立檔案系統並格式化

8. mount /dev/myvg0/mylv /mnt/mystuff
#掛載邏輯卷冊至 /mnt/mystuff 以準備使用

如何增加邏輯卷冊容量(需要底層檔案系統允許)
1. 增加一個新的實體或虛擬磁碟到機器內,以提供更多的磁碟使用空間

2. fdisk /dev/sdc
#分區新磁碟

3. pvcreate /dev/sdc
# 初始化實體卷冊

4. vgextend myvg0 /dev/sdc
# 加入一個實體卷冊到已存在的卷冊組

5. lvextend -L 2048M /dev/myvg0/mylv
# 延伸邏輯卷冊大小到2GB
or 
   lvresize -L+2048M /dev/myvg0/mylv   
or
   lvresize -L+100%FREE /dev/myvg/mylv
# 或延伸邏輯卷冊大小到全部的閒置空間

6. resize2fs /dev/myvg0/mylv
# 延伸原有的檔案系統

如何減少邏輯卷冊容量(需要底層檔案系統允許)
1. resize2fs /dev/myvg0/mylv 900M
#縮小檔案系統大小至900Mb

2. lvreduce -L 900M /dev/myvg0/mylv
or
   lvresize -L 900M /dev/myvg0/mylv
#縮小邏輯卷冊至900Mb


如何快照與備份邏輯卷冊(需要底層檔案系統允許)
1. lvcreate -s -L 1024M -n snapshot0 /dev/myvg0/mylv
# 建立一如邏輯卷冊的快照

2. tar cvzf snapshot0.tar.gz snapshot0 
# 找您最熟悉的備份工具來備份

3. lvremove /dev/mvvg0/snapshot0
# 刪除快照

 #LVM commands

 PV commands 
pvs                回報實體卷冊資訊
pvscan          掃描使用實體卷冊之所有磁碟
pvdisplay      顯示實體卷冊屬性
pvck              檢查實體卷冊之元數據(metadata)
pvcreate       使用一個磁碟或分區來初始化LVM
pvchange     改變實體卷冊屬性
pvremove     刪除一個實體卷冊
pvresize        在LVM下改變磁碟或分區大小
pvmove         移動在物理卷冊內的邏輯延伸區到卷冊組內之空物理延伸區,再讓
                       原物理卷冊離線。

 VG commands
vgs               回報卷冊組資訊
vgscan         掃描使用卷冊組之所有磁碟
vgdisplay     顯示卷冊組屬性
vgck             檢查卷冊組元數據
vgcreate      使用已有的實體卷冊來建立卷冊組
vgchange     改變卷冊組屬性
vgremove     移除卷冊組
vgextend      增加一個實體卷冊至卷冊組
vgreduce      從卷冊組移除一個實體卷冊


 LV commands 
lvs                     回報邏輯卷冊資訊
lvscan              掃描使用邏輯卷冊的所有磁碟
lvdisplay          顯示邏輯卷冊
lvcreate           在卷冊組內建立邏輯卷冊
lvchange         改變邏輯卷冊屬性
lvremove         移除邏輯卷冊
lvextend          增大邏輯卷冊空間
lvreduce          減少邏輯卷冊空間
lvresize            調整邏輯卷冊空間

 LVM global commands
lvmdiskscan      掃描系統內可以使用LVM的磁碟與分區
dmsetup command    使用低階LVM操作

/dev/mapper/vgname-lvname  邏輯卷冊在檔案系統的映射檔路徑
/dev/vgname/lvname




留言

這個網誌中的熱門文章

Linux操作不求人- 肆章之壹 - 伺服器架設(I) - SSH(SFTP、SCP)、FTP伺服器與遠端連線

@ ssh, sftp      通常安裝好 CentOS6_x64 作業系統後,sshd, ssh daemon 的服務功能是預設開啟的,如筆者的前面篇章所述,預設的 iptables 防火牆設定,亦是開啟讓 ssh 的連線是可通過的,不僅可以連出,也可以被連入。若要確認是否有安裝 sshd 套件以及在啟動時的 runlevel 2 3 5 是否有被載入,可以使用以下指令搜尋: $   rpm  -qa  |   grep  openssh     #  ssh 與 sshd 連線服務皆由 openssh 應用軟體提供。 或使用以下 $   rpm  -qa  |   grep  ssh         #  比用關鍵字 openssh 搜尋更模糊,故符合的條件更多。      如圖4-1可以查詢到有關於 openssh-client 與 openssh-server 的套件, openssh-server 便是提供連入服務的軟體,openssh-client 為提供可以連出的工具。若無以上套件,則使用 yum install openssh ,則可下載安裝。 (圖4-1) 再接著輸入以下指令查詢到 sshd 這個服務,是否有再開機程序內載入,如圖4-2 $ chkconfig | grep ssh   # 查詢 sshd 是否有於 開機 runlevel 啟動 再利用以下指令,來查詢是否防火牆有允許連線 $ iptables  -L  |  grep ssh   # 出現如圖4-2 允許通過之條件 (圖4-2)      接下來,我們要先來調整 sshd 的設定檔,利用 vim  /etc/sshd/sshd_conf ,如圖4-3-1與4-3-2。因為設定檔參數很多,筆者為方便說明,將 /etc/sshd/sshd_conf 檔案內容分成兩張圖。 (圖4-3-1)

Linux 操作不求人系列 - 貳章之壹 - Shell Script 程式設計(I) - BASH

     本章開始進入Shell Scripts的程式設計,因為Linux Shell的種類相當多,故筆者僅挑選預設的Bash Shell 及 學術界常會使用的 C Shell (/bin/tcsh )來說明與對照,在此先說明。至於 Scripts 的概念,在前章就已經說明過,可視為前壹章的各項指令之組合,在令其在執行檔案裡,依序執行,如前章所看到的 /etc/profile 檔案,在其他軟體上,有點類似巨集(macro)的執行檔,或是MS Windows的批次檔(Batch)。先建立此概念後,我們可以先在Terminal的命令提示字元,使用 for 指令,如圖2-1,在 shell scripts 內為了重複做一件事,而僅修改某些變數值,我們會利用所謂的迴圈(loop)方式來完成,而 bash shell 內常用的是 for 或是 tcsh/csh shell 內的 foreach 。 (圖2-1)      圖 2-1第一個指令輸入 for 的宣告,後面接著 seq 為變數名稱,為了逐次接收  in 後面之陣列值(http://www.gnu.org/software/bash/manual/html_node/Arrays.html)(註:若加了  ; 則 do 便可寫在同一行),接著 > 的提示字元的等待輸入,便是還沒遇到 done 指令來結束 do 的動作,控制此提示字元的環境變數為 PS2 。,此例的 seq 值,依序為第一次讀入 first 字串並存入變數 seq 當其值,接著second、third,從 echo $seq 可以看出,接著設定一個變數 file 其值為 my開頭字串,緊接變數值 $seq(first、second、third),再接固定的 script.sh 字串,接著利用echo指令,印出變數值$file,檢查是不是我們預期的字串值(註:如果想要暫停,讓使用者可以看清楚再繼續,可以加上指令sleep 3,表示畫面停止三秒鐘),接著利用 touch 指令產生 $file 字串值的檔案,再將其利用 chmod 指令, u+x 參數為令僅創立此檔的使用者帳號可執行(若要改為同群組可執行,參數需改為 g+x )。故可看到第二個指令輸入 ls ,便列出自動批次

Linux操作不求人 - 伍章之陸 - Intel PXE 與利用 tftp + anaconda kickstart來自動部署系統

     現代的個人電腦與筆電爲了節能省碳,往往皆省略了光碟機的設置。雖然說 USB隨身碟亦可應用於安裝作業系統,但若遇到機房的大量機器需安裝之問題,亦不適合此種用光碟片或隨身碟逐臺安裝的方式,或是需準備多片光碟或隨身碟。故爲了大量安裝與部屬 Linux作業系統的機器,我們便可透過具有PXE功能之網路卡(https://en.wikipedia.org/wiki/Preboot_Execution_Environment),其所具備的網路開機的能力,來作透過網路方式來安裝與大量部署 CentOS Linux作業系統。其原理 wikipedia  的PXE說明,都解釋得很清楚,筆者不需要再 " 掉書包 ",在開發者大神面前班門弄斧,我們就直接來做做看。      首先,我們一樣透過 yum來安裝所需的 tftp伺服器軟體(http://www.jounin.net/tftpd32.html),利用PXE支援 tftp 透過 udp 埠號 69連線,來提供檔案的能力,給利用 PXE開機後安裝作業系統的機器,圖5-60   (圖5-60) 接著修改 tftp 設定檔 /etc/xinetd.d/tftp,如圖5-61,請記得 disable  要改為 no (圖5-61)      若要修改 server_args 參數為自訂的 tftp root 路徑,記得要變更 SELinux 的權限設定,如要改為/tftpboot,則使用指令 chcon  來調整,如以下: $ mkdir /tftpboot $ chcon  --reference /var/lib/tftpboot  /tftpboot 接著將 xinetd 與 tftp 加入開機啟動,並重啟動 xinetd,如下: $ chkconfig  --level  235  xinetd on $ chkconfig  --level  235  tftp  on $ service xinetd restart 開放防火牆通行 $ iptables -A INPUT -p udp --dport 69 -j ACCEPT $ service iptables re