此次是要給服務器的安裝一個MySQL數據庫系統,須要一個比較大的空間,並且要能後期靈活增長空間,因此把已有的硬盤作成lvm是最好的選擇。邏輯卷是一個很好用的磁盤管理工具,就像它的名字,你操做的是邏輯卷而不是直接使用物理磁盤。咱們能夠方便的調整邏輯卷的大小而不會損壞數據,隨時把新磁盤加入邏輯卷管理來拓展存儲空間。lvm的結構以下圖所示 html
使用parted給硬盤分區,由於是大於2T的硬盤,因此咱們採用parted劃分硬盤而不是傳統的fdisk。大部分Linux系統會有parted的安裝,若是沒有請使用各自的方法安裝,此處僅示範centos和Ubuntu的安裝linux
$ sudo apt install parted
複製代碼
$ sudo yum install parted
複製代碼
咱們此次把整塊硬盤做一個分區所有加入一個物理卷中(或許物理磁盤不分區也能直接加入物理卷,但我沒有試驗成功,因此此次我把整個磁盤分到一個分區中),使用parted進行分區數據庫
$ sudo parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
複製代碼
查看已有的分區信息centos
(parted) print
Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sdb: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: pmbr_boot
Number Start End Size File system Name Flags
1 17.4kB 4001GB 4001GB sdb1
複製代碼
這是一個分好的硬盤分區信息一共4T,分區表類型是的gpt,把全部空間分到一個分區裏了。若是是一個新硬盤須要建立分區表和分區:bash
(parted) mkpart
Partition name? []? sdb1
File system type? [ext2]? xfs
Start? 0
End? 4001G
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? i
(parted) quit
複製代碼
退出保存分區信息,咱們這裏應爲業務須要把整個盤放到一個分區裏了,固然你也能夠分多個區,計算好開始和結束的區間就行。後面11塊硬盤相同的操做方式作好分區準備,盤符大體:sdb1, sdc1,sdd1...sdm1服務器
把12個分區都加入物理卷app
$ sudo pvcreate /dev/sdb1
$ sudo pvcreate /dev/sdc1
...
$ sudo pvcreate /dev/sdm1
複製代碼
建立完物理卷後,運行pvdisplay查看一下建好的物理卷,執行完pvdisplay後顯示的結果大體以下,我只顯示了一個pv的。工具
$ sudo pvdisplay
--- Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size <3.64 TiB / not usable 3.80 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 953861
Free PE 0
Allocated PE 953861
PV UUID 70p52P-TafB-YkwL-YG8P-Bo0x-3C0i-coKJMu
複製代碼
固然若是有問題,也可使用 pvremove刪除物理卷ui
$ sudo pvremove /dev/sdb1
複製代碼
把建好的12個物理卷加入一個卷組,這是咱們的業務需求,把12個物理卷加到一個卷組中,你也能夠根據本身的需求靈活配置。下列命令就是把12個物理卷加入一個名稱爲vgapp的卷組裏。spa
$ sudo vgcreate vgapp /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1 /dev/sdm1
複製代碼
使用vgdisplay查看已建的卷組
$ sudo vgdisplay
--- Volume group ---
VG Name vgapp
System ID
Format lvm2
Metadata Areas 12
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 12
Act PV 12
VG Size 43.66 TiB
PE Size 4.00 MiB
Total PE 11446332
Alloc PE / Size 0 / 0
Free PE / Size 6203452 / 23.66 TiB
VG UUID Kc9ybM-8ZTw-OOPY-opX5-Azgc-dbgB-HMCeIs
複製代碼
從輸出中,咱們能夠看見卷組的使用量/總量。只要在這個卷組中還有可用空間,咱們就能夠隨意建立邏輯卷。 若是卷組分配不合理也可使用vgremove刪除卷組從新建
$ sudo vgremove vgapp
複製代碼
上一步咱們已經建好了一個名稱爲vgapp的卷組,如今咱們就能夠在這個卷則上建一個邏輯捲了。咱們須要用到大概20T空間在名爲vgapp的卷組上創建一個名爲lvapp的邏輯卷.
sudo lvcreate -L 20T -n lvapp vgapp
複製代碼
這裏的是建立了一個默認的Linear邏輯卷,其實還支持其餘的方式創建邏輯卷,好比條帶化卷(相似raid0),鏡像卷(相似raid1)或者它們的集中組合,這些我之後再研究。建立完成後使用lvdisplay查看剛建好的邏輯卷
$ sudo lvdisplay
複製代碼
結果以下
$ sudo lvdisplay
--- Logical volume ---
LV Path /dev/vgapp/lvapp
LV Name lvapp
VG Name vgapp
LV UUID 1CpWwd-b4Wf-fdqP-gMPO-1Jb8-0w0h-idvXBo
LV Write Access read/write
LV Creation host, time xjwlmq-16f-c07-sev-hw2288v3-02u10, 2019-02-28 13:25:34 +0800
LV Status available
# open 1
LV Size 20.00 TiB
Current LE 5242880
Segments 6
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
複製代碼
邏輯卷建好了就能夠把它格式化並掛在到系統的某個目錄開始使用了
$ sudo mkfs.xfs /dev/vgapp/lvapp
$ sudo mkdir /app
$ sudo mount /dev/vgapp/lvapp /app/
複製代碼
掛載完成後就能夠看看咱們的勞動成果
$ sudo df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 1.0T 1.2G 1023G 1% /
devtmpfs 63G 0 63G 0% /dev
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 63G 553M 63G 1% /run
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/sda1 509M 128M 381M 26% /boot
/dev/mapper/vgapp-lvapp 20T 33M 20T 1% /app
tmpfs 13G 0 13G 0% /run/user/1001
複製代碼
其中20T那個/app目錄掛載的就是咱們剛建的邏輯卷。最後別忘記把這放到/etc/fstab中實現開機掛載
$ sudo cat /etc/fatab
#
# /etc/fstab
# Created by anaconda on Sun Oct 14 10:36:44 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=a7f90806-f11c-41ca-8210-2a758d38aed8 / xfs defaults 0 0
UUID=ca13fb4a-64a6-4a2b-9847-c309145ae3b4 /boot xfs defaults 0 0
/dev/vgapp/lvapp /app xfs defaults 1 2
複製代碼
lvm的功能強大的很,之後能夠多研究一下,除了支持相似raid的邏輯卷外,還有快照等功能。