centos Linux下磁盤管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs

centos Linux下磁盤管理   parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs ,nr_inodes, LVM,傳統方式擴容文件系統   第七節課php

 

 

fdisk  設備名 ‘p’, ‘n’, ‘d’, ‘w’, ‘q’,‘l’.
partprobe

mount  //查看當前掛載狀況
mount -a  //掛載/etc/fstab




mkfs.ext4  /dev/sdb1
mkfs -t ext4 /dev/sdb3

echo "/dev/sdb1  /data  ext4  defaults,noatime,nodiratime   0 0" >>/etc/fstab
mount -a

mount   -o  noatime,nodiratime  /dev/vdb1  /data
mount   -o remount,noatime,nodiratime   /dev/vdb1  /data


umount  /dev/sda5 或者 umount /mnt
umount -lf  //強制卸載  umount -lf /mnt


---------------------------------------------------------------

騰訊雲機器初始化分區

echo -e "n\np\n1\n\n\nwq\n" |fdisk /dev/vdb
mkdir -p /data/
mkfs -t ext4 /dev/vdb1
echo "/dev/vdb1  /data  ext4  defaults,noatime,nodiratime   0 0" >>/etc/fstab
mount -a
mkdir -p /data/{download,backup,script,kvmimg}
----------------------------------------------------------------------

 

 

 

 

parted 分區工具html

http://www.apelearn.com/bbs/thread-7243-1-3.htmlnode

 

上半節課linux

df -iTh
du -sh
ls -lhd /tmp/
fdisk
partprobeweb

partx 算法

 

下半節課
# cat /etc/filesystems
mkfs.ext4
mount
tmpfs
nr_inodes
/etc/fstab
fscksql

 

 

 

df命令
df -h :可讀形式
df -TH --total :顯示全部分區加起來的空間
df -TH:文件系統類型
df -i:inode的數量
df -iTh
注意inode的使用shell

df -TH --total
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  501M  4.1k  501M   1% /dev
tmpfs          tmpfs     103M  1.1M  102M   1% /run
/dev/sda1      ext4       30G  1.3G   27G   5% /
none           tmpfs     4.1k     0  4.1k   0% /sys/fs/cgroup
none           tmpfs     5.3M     0  5.3M   0% /run/lock
none           tmpfs     512M     0  512M   0% /run/shm
none           tmpfs     105M     0  105M   0% /run/user
/dev/sda3      ext4       45G   51M   42G   1% /data
/dev/sda2      ext4      283M   40M  224M  15% /boot
total          -          75G  1.4G   70G   2% -

 

 

 


du命令
du -sh /tmp/ 全部文件加起來大小
du -sm /tmp/ MB
du -sk /tmp/ KB 默認
du -sb /tmp/ 字節
du --max-depth=1 一級目錄
ls -lhd 若是是目錄的話 指目錄自己 通常一個目錄只佔用一個塊的大小
ls -lhd /tmp/ 4.0K數據庫


echo "22" >1.txt :Linux磁盤管理第一節課,銘哥說1.txt佔2個字節 由於有兩個字符apache

# du -h --max-depth=1 /
0 /misc
244K /dev
4.0K /media
48M /boot
225M /var
2.2G /usr
4.0K /aming
4.0K /srv
4.3G /root
4.0K /selinux
28M /lib64
4.0K /testsdb1
7.8M /bin
4.0K /mnt
4.0K /cgroup
37M /etc
255M /lib
52K /tmp
4.0K /.ssh
4.0K /testsdb3
16K /lost+found
73M /data
0 /net
du: 沒法訪問"/proc/2818/task/2818/fd/4": 沒有那個文件或目錄
du: 沒法訪問"/proc/2818/task/2818/fdinfo/4": 沒有那個文件或目錄
du: 沒法訪問"/proc/2818/fd/4": 沒有那個文件或目錄
du: 沒法訪問"/proc/2818/fdinfo/4": 沒有那個文件或目錄
0 /proc
4.0K /download1
8.0K /123
0 /sys
787M /download
8.0K /opt
284K /home
15M /sbin
7.9G /

 

 

 

磁盤的分區和格式化

fdisk -l  查看磁盤和分區,大於2T用GPT

fdisk  設備名 m 列出經常使用命令,經常使用的有‘p’, ‘n’, ‘d’, ‘w’, ‘q’,‘l’.

 

MBR:P+E=<4

GPT:128

直接寫分區大小

 

先建擴展分區,再建邏輯分區

 

邏輯分區必定從5開始,當前是二個主分區,一個擴展分區

 

w :保存分區表


partprobe :有時候w保存分區表以後,系統沒有那麼快識別出來,須要partprobe 從新讀取/刷新分區,或者重啓服務器

partx -a:RHEL 6.0下partprobe 不能用,只能用partx -a

partx
-a 登記某塊盤上的全部分區信息,若是某個分區信息已有記錄,就會報錯:
BLKPG: Device or resource busy
error adding partition 4
-d 刪除內核中關於某磁盤上的全部分區的記錄(不是卸載)
-d --nr m-n 刪除從第m--n分區的記錄
若是已經掛載,則沒法刪除,並報錯:
error deleting partition 5: BLKPG: Device or resource busy
-l 列出某磁盤上的分區狀況。數據從磁盤上獲取,並非來源於/proc/partitions
partx -l /dev/sda
# 1: 2048- 1026047 ( 1024000 sectors, 524 MB) /boot
# 2: 1026048- 62466047 ( 61440000 sectors, 31457 MB) /
# 3: 62466048- 78850047 ( 16384000 sectors, 8388 MB) /swap
# 4: 78850048-1953525167 (1874675120 sectors, 959833 MB) /data
# 5: 78852096-1953523711 (1874671616 sectors, 959831 MB)

 

 

sda、sdb:sata/scsi disk A   disk B

sda一、sda二、sda3 分區

 

掛載磁盤
fdisk  /dev/vdb
n   new
p   primary /extent
1    扇區從1開始
+9G   9個G
mkdir /mydata
mke2fs  -t  ext4  /dev/vdb1
echo '/dev/vdb1  /mydata  ext4  defaults,noatime,nodiratime   0 0' >>/etc/fstab
mount -a

 


下半節課

 

查看系統當前支持的文件系統

# cat /etc/filesystems
ext4
ext3
ext2
nodev proc
nodev devpts
iso9660  光驅
vfat
hfs
hfsplus

 

 

格式化命令

mkfs.ext2,

mkfs.ext3,

mkfs.ext4

mke2fs  -t ext4  /dev/sdb1

-t 文件系統格式 ext3 ext4

-b 指定每一個數據塊大小,目前支持1024, 2048 、409六、8192

-L 分區標籤 label

格式化時默認blocks (5.00%) reserved for the super user  //給超級用戶預留的一部分空間,用來做爲特殊用途

-m  能夠更改這個比例,如 mke2fs -m 0.1 /dev/sdb1   //意思是,只預留出0.1% 給root用戶

 

塊設備不分區也能夠格式化

不分區直接在塊設備上進行文件系統格式化
fdisk -l
Disk /dev/vdb: 10.7 GB, 10737418240 bytes
16 heads, 63 sectors/track, 20805 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

mkfs -t ext4 /dev/vdb 
echo "/dev/vdb  /data  ext4  defaults,noatime,nodiratime   0 0" >>/etc/fstab
mount -a

df -TH
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/vda1      ext3   53G  1.3G   49G   3% /
/dev/vdb       ext4   11G   24M  9.9G   1% /data


fdisk -l
Disk /dev/vdb: 10.7 GB, 10737418240 bytes
16 heads, 63 sectors/track, 20805 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

 

怎麼知道一個塊設備是否已經格式化安裝了文件系統,若是格式化過,他的標籤label是啥

有兩種方法:

一、若是一個塊設備沒有安裝文件系統,是不能被掛載的

mount /dev/vdb1 /data
mount: you must specify the filesystem type

二、file 命令的-s參數能夠設備塊設備

-s, --special-files
Normally, file only attempts to read and determine the type of argument files which stat(2) reports are ordinary files.
This prevents problems, because reading special files may have peculiar consequences. Specifying the -s option causes
file to also read argument files which are block or character special files. This is useful for determining the
filesystem types of the data in raw disk partitions, which are block special files. This option also causes file to
disregard the file size as reported by stat(2) since on some systems it reports a zero size for raw disk partitions.


沒有安裝文件系統會只顯示data

file -s /dev/vdb1
/dev/vdb1: data

安裝了文件系統會顯示文件系統類型
整個磁盤

file -s /dev/vda
/dev/vda: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, boot drive 0x80, 1st sector stage2 0xf0800, GRUB version 0.94; partition 1: ID=0x83, active, starthead 32, startsector 2048, 16775168 sectors, code offset 0x48

整個分區

file -s  /dev/vda1
/dev/vda1: Linux rev 1.0 ext3 filesystem data (needs journal recovery) (large files)

/dev/vdc是swap分區,能夠識別swap分區,標籤label是lswap,

file -s /dev/vdc
/dev/vdc: Linux/i386 swap file (new style) 1 (4K pages) size 524287 pages Label lswap
file -s /dev/vdc1
/dev/vdc1: Linux/i386 swap file (new style) 1 (4K pages) size 524277 pages

 

 

 

 

掛載、卸載磁盤分區
mount 不加任何選項和參數,查看已掛載狀況
mount 格式  mount -t type  /dev/sda5  /mnt
mount -t 指定掛載分區格式,如 -t ext3
mount -n 掛載分區的時候不寫入/etc/mtab --no-mtab,對於/etc目錄變爲只讀文件系統來講這個時候很是有用
umount  /dev/sda5 或者 umount /mnt
umount -lf  強制卸載

-f Force unmount (in case of an unreachable NFS system). (Requires kernel 2.1.116 or later.)
-l Lazy unmount. Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem as soon as
it is not busy anymore. (Requires kernel 2.4.11 or later.)


umount -a -t cifs  卸載全部的cifs文件系統

#掛載/dev/sdb5 到 /db5目錄  使用ext3文件系統 
# mount -t ext3 -o noatime,auto,ro  /dev/sdb5  /db5
#掛載tmpfs分區到/tmp 目錄 使用tmpfs  文件系統  選項是最多隻能使用64m內存  限制/tmp這個分區只能使用10000個inode size選項和nr_inodes選項均可以防止tmpfs用盡內存
# mount -t tmpfs  –o size=64m   nr_inodes=10000   tmpfs  /tmp        #Linux就這個範兒 P342
# mount -av -n -t nonfs,nproc

 

不要把開機啓動的東西,例如mount 掛載點,啓動服務等寫到 .bash_profile ,.bashrc 這些配置,

這樣會致使每次啓動shell都從新啓動一次!!!

 

 


mount  -o 後面跟各類選項,好比remount,ro,noatime等 ,具體選項以下:

mount  -o noatime,auto,ro  /dev/sdb5  /db5

 

「atime/noatime」 : atime表示記錄文件的訪問時間,若是磁盤裏很是多小的圖片或者文件,那麼會致使必定性能問題,通常用noatime
「async/sync」 : async表示和磁盤和內存不一樣步,系統每隔一段時間把內存數據寫入磁盤中,而sync則會時時同步內存和磁盤中數據;
「auto/noauto」 : 開機自動掛載/不自動掛載
「default」 : 按照大多數永久文件系統的缺省值設置掛載定義,它包含了rw, suid, dev, exec, auto, nouser, async
「ro」 : 按只讀權限掛載 ;
「rw」 : 按可讀可寫權限掛載 ;

「exec/noexec」 : 容許/不容許可執行文件執行,但千萬不要把根分區掛載爲noexec,那就沒法使用系統了,連mount命令都沒法使用了,這時只有從新作系統了;
「user/nouser」 : 容許/不容許root外的其餘用戶掛載分區,爲了安全考慮,請用nouser ;
「suid/nosuid」 : 容許/不容許分區有suid屬性,通常設置nosuid ;
「usrquota」 : 啓動使用者磁盤配額模式,磁盤配額相關內容在後續章節會作介紹;
「grquota」 : 啓動羣組磁盤配額模式;

特殊用法:

mount -o remount ,ro  /dev/sdb5   /db5    #已經掛載的分區而且已經在使用,能夠用remount 來加其餘mount選項

mount -o loop  1.iso  /mnt    #掛載鏡像文件

/dev/cdrom的真正設備名 /dev/sr0

 

mount --bind (綁定掛接技術 Linux就這個範兒 P342)
/dir1 /dir2 #掛載目錄 /dir1 刪除了 ,/dir2也會刪除,不多用,至關於目錄的軟連接

#mkdir /dev/shm/tmp
#chmod 1777 /dev/shm/tmp
#mount --bind /dev/shm/tmp /tmp #全部使用/tmp目錄做爲臨時目錄的程序都會受益於tmpfs所提供的高性能

 

 

mount -a 會根據/etc/fstab 掛載全部分區
UUID是如何來的,使用命令 blkid 或lsblk,建議使用lsblk命令  lsblk -f
blkid命令 後能夠不跟設備名,列出全部
mount UUID=「……」 /mnt mount UUID="XXXXXXX" /data/
使用UUID的好處是,多塊磁盤,若是在服務器上換了插槽位置,設備名會變,但UUID是惟一的
注意:https://cloud.tencent.com/document/product/362/6735
UUID和文件系統是一一對應的,也就是文件系統 UUID 與文件系統相關,從新格式化文件系統後,UUID將會發生變化,所以有可能會致使您的自動掛載設置失效

 

 

 

磁盤分區配置文件 /etc/fstab   6列
第一列就是分區的標識,能夠LABEL,也能夠UUID,固然也能夠 分區名/塊設備名(/dev/sda1或/dev/sda);最好寫UUID,由於加磁盤以後,分區標識(/dev/sda1)可能會變,/boot分區就是寫UUID
第二列是掛載點;
第三列是分區的文件系統;
第四列則是mount的一些掛載參數,通常狀況下,直接寫defaults便可;
第五列的數字表示是否dump備份,是的話這裏就是1,不然就是0;備份日誌

第六列是開機時是否自檢分區。1,2都表示檢測,0表示不檢測,/ 分區必須設爲1,並且整個fstab中只容許出現一個1,1比2優先級高,因此先檢測1,而後再檢測2,若是有多個分區須要開機檢測那麼都設置成2吧,1檢測完了後會同時去檢測2。

 

LVM

CentOS6 在命令行模式下安裝只能使用LVM,在圖形界面模式安裝可讓你選自定義佈局和LVM,聽說這是CentOS的bug

 

 

 

 

fsck  只檢查文件系統 ,不檢查磁盤壞塊
e2fsck -f 強制檢查 -d 調試e2fsck -y 非交互

須要先卸載掛載點
umount  /dev/sdb5 /
e2fsck -yf /dev/vgdata/lvdata1

http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=6508&highlight=fsck

 

 



 

nobarrier的意思
http://mp.weixin.qq.com/s/4hdrW9KdZGAE4SXY7mVZAQ
如今的不少文件系統會在數據提交時強制底層設備刷新cache,避免數據丟失,稱之爲write barriers。
可是,其實咱們數據庫服務器底層存儲設備要麼採用RAID卡,RAID卡自己的電池能夠掉電保護;要麼採用Flash卡,它也有自我保護機制,保證數據不會丟失。因此咱們能夠安全的使用nobarrier掛載文件系統。
設置方法以下:
對於ext3, ext4和 reiserfs文件系統能夠在mount時指定barrier=0;對於xfs能夠指定nobarrier選項。

pgsql修煉之道從小工到專家 唐成 P356
爲保證數據可靠性,IO寫的順序很重要,好比在pg中必需要求寫入wal日誌後,才能寫入數據塊的數據,因爲數據存放在cache裏
用戶發起的寫順序不必定等於實際寫入非易失性硬件介質的順序,由於各級cache都有可能改變IO順序,例如在linux的io調度器上
爲了提升性能,經過電梯算法改變IO順序,在raid卡上也有相應的算法改變IO順序,而且在硬盤內部也有幾兆到幾十兆內存作cache
他裏面也有算法改變IO順序提供性能,那麼是否有辦法保證IO的順序呢,
在操做系統中爲保證IO的順序,專門提供一種IO機制,被稱爲barriers IO
barriers IO定義以下:
barriers 請求以前全部在隊列中的請求必須在barriers 請求開始前被結束,並持久化到非易失性硬件介質
barriers 請求以後的IO須要等到其寫入後才能獲得執行
barriers IO是操做系統層面的概念,爲了實現barriers IO底層硬件和驅動必須有相應支持。SCSI/SAS硬盤經過FUA技術和synchronize cache技術
來實現barriers IO功能。FUA技術讓用戶能夠不使用硬盤的緩存直接訪問磁盤介質,synchronize cache技術讓用戶把整個硬盤上的緩存
都刷新到介質上。SATA硬盤能夠經過flush cache ext調用來支持barriers IO。若是SATA硬盤開啓了NCQ功能,也能夠處理FUA
linux開啓NCQ功能須要libata驅動。
dmesg |grep libata
多數文件系統都提供了barriers IO選項,ext3和ext4默認開啓了barriers IO,想關閉,barrier=0
mount -o barriers=0 /dev/sdb1 /data/pgdata
xfs默認開啓barriers IO,想關閉,nobarrier
mount -o nobarrier /dev/sdb1 /data/pgdata

總結:開啓barriers IO表示不使用操做系統緩存和硬盤緩存,默認是開啓了barriers IO


http://www.liusuping.com/storage/das-nas-san-cunchu-jishu-bijiao.html

 

DAS、NAS、SAN存儲技術的比較

NAS:以文件爲單位

SAN:以區塊爲單位

到時候搭建SAMBA服務器的時候要注意CIFS協議!

 

什麼是NAS

網絡儲存設備 (Network Attached Storage,NAS),(網絡附加存儲)是一種專門的資料儲存技術的名稱,它能夠直接鏈接在電腦網絡上面,不一樣操做系統的使用者提供了集中式資料存取服務。

NAS和傳統的檔案儲存服務或是直連儲存設備不一樣的地方在於NAS設備上面的操做系統和軟件只提供了資料儲存、資料存取、以及相關的管理功能;此外,NAS設備也提供了不止一種檔案傳輸協議。NAS系統一般有一個以上的硬盤,並且和傳統的檔案服務器同樣,一般會把它們組成RAID提供服務;有了NAS之後,網絡上的其餘服務器就能夠沒必要再兼任檔案服務器的功能。NAS的型式不少樣化,能夠是一個大量生產的嵌入式設備,也能夠在通常的電腦上執行NAS的軟件

NAS用的是以檔案爲單位的通信協定,例如像是NFS(在UNIX系統上很常見)或是SMB(經常使用在Windows系統)。NAS所用的是以檔案爲單位的通信協定,相對之下,儲域網絡SAN)用的則是以區塊爲單位的通信協議一般是透過SCSI再轉爲光纖通道或是iSCSI

NAS設備用的一般是精簡版的操做系統,只提供了最單純的檔案服務和其相關的通信協定;舉例來講,有一個叫FreeNAS的開放源碼NAS軟件用的就是精簡版的FreeBSD,它能夠在通常的電腦硬件上執行,而商業化的嵌入式設備用的則是封閉源碼的操做系統和通信協定程式。

簡單來講NAS就是一臺在網絡上提供文檔共享服務的的網絡存儲服務器

NAS的網絡結構

NAS存儲使用以太網接口直接接入現有以太網網絡實現文件的共享。部署靈活,不會對現有網絡結構產生變化。

 

NAS存儲的優缺點

NAS的優勢:

NAS設備通常支持多計算機平臺,用戶經過網絡支持協議可進入相同的文檔,於是NAS設備無需改造便可用於混合Unix/Windows NT局域網內。

其次,NAS設備的物理位置一樣是靈活的。它們可放置在工做組內,靠近數據中心的應用服務器,或者也可放在其餘地點,經過物理鏈路與網絡鏈接起來。無需應用服務器的干預,NAS設備容許用戶在網絡上存取數據,這樣既可減少CPU的開銷,也能顯著改善網絡的性能。

對現有網絡環境有很好的適應性。NAS設備對企業網絡環境基本上沒有什麼特別的要求和限制,能夠很方便的在現有的網絡環境中添加NAS設備。這是由於NAS所支持的那些操做系統和網絡協議都是已在網絡中獲得很好的支持,NAS設備的添加不會引起新的網絡支持的問題。

高可擴展性。NAS設備的高擴展性很好的知足了企業日益增加的存儲需求。NAS的擴展只需經過添加一個節點及網絡設備便可(作到真正的即插即用,而且部署位置很是靈活),基本上啓動NAS設備,運行相應的網絡文件系統,並將這個NAS設備接入網絡環境就完成添加了。

NAS集羣技術經過一組NAS設備集合起來造成如同一個NAS設備,NAS集羣技術提供了必定的存儲分流,使得不一樣的NAS設備能夠同時工做來知足網絡存儲的存儲需求,從而提升了NAS系統的總體性能,並解決了多個NAS系統的擴展性和管理趨於複雜性的問題。

易管理性。NAS自己就是爲了企業內部網絡而設計,實現了異構平臺下的數據共享,所以NAS的使用和維護成本就相對很低,管理和維護工做也相對簡單。用戶只需一些簡單的初期設置和管理,NAS設備就能夠很好的運行起來。

基於網絡服務的豐富應用

NAS存儲是基於TCP/IP協議的一臺網絡文件服務器,所以除了提供基本的NFS、SMB等網絡共享服務以外還能夠根據不一樣的NAS存儲設備提供一些高級的網絡應用,以下圖威聯通NAS所示

在一臺NAS設備上同時提供文件共享服務,FTP服務,web服務,日誌服務器、打印服務器及備份服務器等基於TCP/IP協議的網絡服務。例如在監控存儲部署方面具備較大優點。

NAS相對於DAS部署靈活,支持多用戶共享使用。

NAS相對於SAN部署成本很是低。

NAS的缺點

NAS沒有解決與文件服務器相關的一個關鍵性問題,即便用過程當中的帶寬消耗。與將數據流從LAN中轉移出去的存儲區域網(SAN)不一樣,NAS仍使用網絡進行備份和恢復。NAS 的一個缺點是它將存儲事務由並行SCSI鏈接轉移到了網絡上。也就是說LAN除了必須處理正常的最終用戶傳輸流量外,還必須處理包括備份操做的存儲磁盤請求。

存儲性能的侷限。NAS只適合應用在較小的網絡或者局域網內。由於NAS受限於企業網絡的帶寬,極可能會出現當多臺客戶端訪問NAS文件系統時,NAS的性能大大的降低,最終不能知足用戶的需求。

可靠性還有待提升。當企業內部網絡發展到必定的規模時,NAS設備的數據服務和數據管理造成了網絡的雙重負擔,也就是說NAS除了要處理正常的終端數據I/O請求外,還須要作備份和恢復等操做。而且NAS後期的擴容成本高;通常的NAS沒有高可用配置,容易造成單點故障

NAS和簡單PC服務器的區別

價格優點:

用服務器來搭建NAS仍是購買專用NAS設備

省去了鍵盤,鼠標,顯示器等外部設備,從而大大節約了經費開銷,按照平均存儲價格來講NAS單位存儲對應的價格要遠遠低於服務器並且他採用了RAID 5級別的數據保護技術,從而讓數據存儲更加放心更加安全。

穩定性優點:

功能單純而且移除了許多沒必要要的鏈接器、控制晶片、電子迴路,如鍵盤、鼠標、VGA等;因此架構上相比常見計算機有了簡化。

管理優點

NAS設備用的一般是精簡版的操做系統,提供了最單純的檔案服務和其相關的通信協定,而且針對NAS的服務提供了簡便靈活的管理軟件。例如web管理,客戶端管理等方式。

DAS、NAS和SAN的比較

DAS:直接附加存儲

DAS(Direct Attached Storage—直接附加存儲)是指將存儲設備經過SCSI接口或光纖通道直接鏈接到一臺計算機上。DAS的適用環境爲:

1)服務器在地理分佈上很分散,經過SAN或NAS在它們之間進行互連很是困難時。

2)存儲系統必須被直接鏈接到應用服務器(如Microsoft Cluster Server或某些數據庫使用的「原始分區」)上時;

3)只有單臺服務器,存儲設備無需與其餘服務器共享

SAN:存儲區域網絡

先看下下圖的SAN存儲的網絡拓撲圖

SAN存儲經過光纖交換機將磁盤空間分配給不一樣的服務器,服務器經過以太網對外提供服務,存儲區域與用戶的應用區域隔離

SAN(存儲區域網絡)經過光纖通道鏈接到一羣計算機上。在該網絡中提供了多主機鏈接,但並不是經過標準的網絡拓撲。

高帶寬:SAN的結構容許任何服務器鏈接到任何存儲陣列,這樣無論數據置放在那裏,服務器均可直接存取所需的數據。由於採用了光纖接口,SAN還具備更高的帶寬

獨立的存儲網絡:由於SAN解決方案是從基本功能剝離出存儲功能,因此運行備份操做就無需考慮它們對網絡整體性能的影響。

管理便捷:SAN方案也使得管理及集中控制實現簡化,特別是對於所有存儲設備都集羣在一塊兒的時候。

遠距離部署:光纖接口提供了50千米的鏈接長度,這使得實現物理上分離的、不一樣機房的存儲變得很是容易。

SAN主要用於存儲量大的工做環境,如ISP、銀行等,最大的缺點就是成本高。

總結

根據DAS、NAS、SAN的不一樣特性,DAS及SAN是基於存儲空間的磁盤分配,是基於硬件層面的存儲方式,而NAS則是基於應用層面的存儲方式,能夠根據應用環境來對其進行總結。

DAS多采用SCSI或SAS接口,因爲部署節點的單一性及較高的性能,適用於單一節點的企業級應用,或者地理位置比較分散的服務器使用。DAS因爲部署的侷限性目前使用量愈來愈少。

NAS利用現有以太網網絡,所以部署靈活,部署的成本很是低,基於TCP/IP協議的特性能夠提供豐富的網絡服務,基於文件的形式提供數據的存儲及備份,可是TCP/IP協議決定了數據傳輸的數據打包及解包會佔用系統資源,另外傳輸速率受限於以太網的速率,所以不適用於企業級應用,一般部署於部門級應用。

SAN存儲使用光纖網絡進行傳輸,而且獨立於應用網絡(不一樣物理網段)能夠提供很是高的帶寬,數據的傳輸基於塊協議,無需對數據進行處理,直接進行傳送,所以性能最好,另外光纖線路能夠提供遠距離的高帶寬鏈路,能夠實現數據中心的異地災備應用,可是部署成本較高。所以SAN存儲多應用於企業級的存儲部署中。

隨着技術的發展,以iSCSI技術的IP SAN技術使NAS存儲搶佔了一部分SAN存儲的市場份額,另外隨着10Gb以太網技術的發展NAS存儲的發展空間將會更加廣闊。

f


LVM

 

LVM的一些問題彙總
--http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=7664&page=1&extra=#pid38836

 

看了幾篇文章和視頻,跟啊銘老師也溝經過,下面列出啊銘老師沒有說到的命令和本身的一些問題總結
RHCA會考到LVM 擴容 縮容

九個查看命令
pvdisplay
vgdisplay
lvdisplay
pvs 經常使用
vgs 經常使用
lvs 經常使用
pvscan
vgscan
lvscan

激活命令
lvchange -ay /dev/vg0 激活,若是邏輯卷還未激活的話就激活
lvchange -an /dev/vg0  休眠


root@steven ~]# pvscan
  PV /dev/sda2   VG VolGroup   lvm2 [19.51 GiB / 0    free]
  Total: 1 [19.51 GiB] / in use: 1 [19.51 GiB] / in no VG: 0 [0   ]
[root@steven ~]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "VolGroup" using metadata type lvm2
[root@steven ~]# lvscan
  ACTIVE            '/dev/VolGroup/lv_root' [17.54 GiB] inherit
  ACTIVE            '/dev/VolGroup/lv_swap' [1.97 GiB] inherit
[root@steven ~]# pvs                   #Attr不是 a-- 表示未激活  大小是19.51g  沒有剩餘空間
  PV                      VG           Fmt      Attr     PSize      PFree
  /dev/sda2      VolGroup     lvm2      a--      19.51g       0 
[root@steven ~]# vgs              # 這個vg下有一個pv  2個lv  大小跟pv的大小同樣都是19.51g  沒有剩餘空間
  VG               #PV  #LV #SN      Attr          VSize      VFree
  VolGroup         1      2      0      wz--n-        19.51g        0 
[root@steven ~]# lvs
  LV                      VG                Attr             LSize          Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_root           VolGroup        -wi-ao----     17.54g                                                    
  lv_swap          VolGroup        -wi-ao----      1.97g      

lvreduce -L 700M /dev/vgdata/lvdata1
通常用大L 指定大小,弊端就是有可能用不完vg裏面的空間
用小 l,-l 127, 127 個PE ,弊端是須要計算,好比一個PE 4M 127*4M=508M 可是不會出現用不完vg的空間的狀況

注意:PE和磁盤的最小存儲單元「扇區」或「塊」或「簇」不一樣,它只是LVM用於進行動態伸縮尺寸的一個最小分配單元,而真正存儲文件的時候,仍是會利用磁盤自己的最小存儲單元。

問題一
使用lvreduce進行縮容的時候須要umount  ,若是apache相關文件放在/data下,你要對/data進行縮容,那麼apache只能停機


問題二
擴容步驟一、先fdisk分區 
fdisk /dev/sdb
n new
l  login分區
+200M  
t  分區類型
15  第15個分區
8e  lvm類型
w   保存

二、從新讀取分區
partprobe  

三、建pv ,擴展vg,擴展lv,resize
pvcreate /dev/sdb15   
vgextend vg0 /dev/sdb15
lvextend –L 1G /dev/vg0/LV01  #擴展LV
resize2fs -p /dev/vg0/LV01    


http://video.baomihua.com/11386501/19695773




問題三
5) 當磁盤或分區損壞時,如何轉移數據
pvmove 轉移空間數據 --> vgreduce命令將即將壞的磁盤或者分區從卷組vgdata裏面移除除去 --> pvremove命令將即將壞的磁盤或者分區從系統中刪除掉 --> 拆除或修復磁盤
pvmove /dev/sdb1 
vgreduce vgdata /dev/sdb1
pvremove  /dev/sdb1

執行pvmove 的時候,Linux是把sdb1 的數據移動到別的分區




lvm配置 (參考內容,你們自行實踐)
LVM是Linux環境中對磁盤分區進行管理的一種機制,是創建在硬盤和分區之上、文件系統之下的一個邏輯層,可提升磁盤分區管理的靈活性。支持動態擴充磁盤空間。
首先從空的硬盤sdb上建立兩個分區sdb1 1G, sdb2 2G。
1)建立邏輯卷
pvcreate /dev/sdb1 /dev/sdb2   //建立物理卷
pvdisplay   //能夠列出已經建立的物理卷
vgcreate vgdata /dev/sdb1 /dev/sdb2        //建立卷組 vgdata ,並將剛纔建立好的兩個物理卷加入該卷組
vgdisplay //能夠列出已經建好的卷組
# 默認PE大小爲4MB,PE是卷組的最小存儲單元.能夠經過 –s參數修改大小。

lvcreate -L 500M -n lvdata1 vgdata  //分割500M給新的邏輯卷lvdata1-n :指定 lv的名字
lvdisplay //列出當前的邏輯卷

mkfs.ext4 /dev/vgdata/lvdata1  //格式化邏輯卷
mount /dev/vgdata/lvdata1  /aming  //掛載邏輯卷

2) 擴展邏輯卷
邏輯卷lvdata1不夠用了,咱們如何給他增長空間呢?
lvextend –L +500M /dev/vgdata/lvdata1  //給lvdata1增長500M空間。
resize2fs  -p /dev/vgdata/lvdata1  //同步文件系統


3)擴展卷組
當卷組不夠用的狀況下,咱們也是能夠擴展卷組的。咱們再建立一個新的分區叫作/dev/sdb3.
vgextend vgdata /dev/sdb3  //把sdb3加入到卷組vgdata中

4)減小邏輯卷大小
卸載 --> e2fsck 檢測剩餘空間 --> resize2fs 同步文件系統 --> 使用lvreduce命令將邏輯卷減小
注意:文件系統大小和邏輯卷大小必定要保持一致才行。若是邏輯卷大於文件系統,因爲部分區域未格式化成文件系統會形成空間的浪費。

umount  /data1
e2fsck -yf /dev/mapper/vgdata-lvdata1

resize2fs -p /dev/mapper/vgdata-lvdata1 
lvreduce -L 700M /dev/vgdata/lvdata1
mount /dev/vgdata/lvdata1 /data1

5) 當磁盤或分區損壞時,如何轉移數據
pvmove 轉移空間數據 --> vgreduce命令將即將壞的磁盤或者分區從卷組vgdata裏面移除除去 --> pvremove命令將即將壞的磁盤或者分區從系統中刪除掉 --> 拆除或修復磁盤
pvmove /dev/sdb1 
vgreduce vgdata /dev/sdb1
pvremove  /dev/sdb1

6) 刪除整個邏輯卷
umount卸載邏輯卷 --> 修改配置文件/etc/fstab(如果以前更改過) --> lvremove 刪除邏輯卷lvdata1 --> vgremove 刪除卷組vgdata --> pvremove 將物理卷轉化成普通分區
umount /dev/vgdata/lvdata1 
lvremove /dev/vgdata/lvdata1
vgremove vgdata
pvremove /dev/sdb2
pvremove /dev/sdb3


------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
動手實驗 動態擴容和縮容

擴容
一、在線加一塊磁盤
<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 

<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 

<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 

添加1G大小的磁盤
<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 

完成
<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 


二、在終端裏面 fdisk -l 就能看到新添加的磁盤,若是看不到可使用這個方法
地址:不用重啓在CentOS / RHEL 虛擬機中添加一塊新硬盤

  1. 肯定主機總線號,磁盤是有總線鏈接着的
  2. [root@steven ~]# ls /sys/class/scsi_host/
  3. host0 host1 host2
  4. 從新掃描SCSI總線來添加設備,由於添加的是SCSI磁盤,因此掃描的是SCSI總線
  5. [root@steven ~]# echo "- - -" > /sys/class/scsi_host/host0/scan
  6. [root@steven ~]# echo "- - -" > /sys/class/scsi_host/host1/scan
  7. [root@steven ~]# echo "- - -" > /sys/class/scsi_host/host2/scan
複製代碼



<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 

三、用fdisk分出一個擴展分區 ,固然分出主分區也是能夠的
fdisk /dev/sdb
n new
e
+500M  大小500m  (我這裏只分了500M,固然用盡1G也是能夠的)
w   保存
<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 

四、再在/dev/sdb 上分邏輯分區

  1. [root@steven ~]# fdisk /dev/sdb
複製代碼

n
l
+200M
p  打印出來看一下分區號

  1. Device Boot      Start         End      Blocks   Id  System
  2. /dev/sdb2               1          65      522081    5  Extended
  3. /dev/sdb5               1          26      208782   83  Linux
複製代碼

t
5
8e
w
五、從新讀取分區partprobe  
partprobe

六、建pv 
pvcreate /dev/sdb5 

  1. [root@steven ~]# pvcreate /dev/sdb5 
  2.   Physical volume "/dev/sdb5" successfully created
複製代碼


七、查看當前系統中的vg狀況
vgs

  1. [root@steven ~]# vgs
  2.   VG       #PV #LV #SN Attr   VSize  VFree
  3.   VolGroup   1   2   0 wz--n- 19.51g    0
複製代碼

八、擴展vg   增長了200M的vg
vgextend VolGroup /dev/sdb5   

  1. [root@steven ~]# vgextend VolGroup /dev/sdb5
  2. .  Volume group "VolGroup" successfully extended
複製代碼


擴容前


<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 


九、擴展lv

lvextend -L +200M /dev/VolGroup/lv_root

設備文件名規律 /dev/VG名/LV名

  1. [root@steven dev]# lvextend -L +200M /dev/VolGroup/lv_root
  2.   Size of logical volume VolGroup/lv_root changed from 17.54 GiB (4490 extents) to 17.73 GiB (4540 extents).
  3.   Logical volume lv_root successfully resized
複製代碼

十、同步
resize2fs  -p /dev/VolGroup/lv_root

  1. [root@steven dev]# resize2fs  /dev/VolGroup/lv_root
  2. resize2fs 1.41.12 (17-May-2010)
  3. Filesystem at /dev/VolGroup/lv_root is mounted on /; on-line resizing required
  4. old desc_blocks = 2, new_desc_blocks = 2
  5. Performing an on-line resize of /dev/VolGroup/lv_root to 4648960 (4k) blocks.
  6. The filesystem on /dev/VolGroup/lv_root is now 4648960 blocks long.
複製代碼


擴容後  Use% 比以前少了,說明擴容成功
<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 


擴容時的兩個謠言
一、將新的磁盤分區加入到卷組vg以前,須要對分區進行格式化爲lv所用的文件系統,經過實驗證實是不須要格式化的,直接加入到卷組vg便可
二、對lv進行擴容,須要先umount才能擴容,經過實驗證實是不須要umount的,也就是說在Apache服務或者其餘服務正常運行的狀況下就能夠擴容


====================================================================
===============================================================
縮容(擴容能夠在線擴容,可是縮容不能是在線的)

由於剛纔擴容是在根分區擴容的,那麼縮容涉及到umount,那麼就不在根分區上面作了,咱們另外新建一個分區
一、創建文件夾
mkdir /aming

  1. [root@steven ~]# mkdir /aming
複製代碼


二、咱們剛纔還有500M的空間能夠利用,咱們利用250M創建一個主分區,再用250M創建另外一個主分區

fdisk /dev/sdb
n
p
1
+250M
t
1
8e
w
sdb1 lvm


fdisk /dev/sdb
n
p
3
+220M
t
3
8e
w
sdb3  lvm

三、建立物理卷

  1.    Device Boot      Start         End      Blocks   Id  System
  2. /dev/sdb1              66          98      265072+  8e  Linux LVM
  3. /dev/sdb2               1          65      522081    5  Extended
  4. /dev/sdb3              99         127      232942+  8e  Linux LVM
  5. /dev/sdb5               1          26      208782   8e  Linux LVM
複製代碼

partprobe
pvcreate     /dev/sdb1     /dev/sdb3 

  1. [root@steven ~]# pvcreate /dev/sdb1
  2.   Physical volume "/dev/sdb1" successfully created
  3. [root@steven ~]# pvcreate /dev/sdb3
  4.   Physical volume "/dev/sdb3" successfully created
複製代碼

四、查看物理卷pvs
<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 

五、建立卷組vgdata
vgcreate vgdata /dev/sdb1

  1. [root@steven ~]# vgcreate vgdata /dev/sdb1
  2.   Volume group "vgdata" successfully created
複製代碼


查看卷組
<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 

六、建立邏輯卷
lvcreate -L +240M -n lvdata1 vgdata

  1. [root@steven ~]# lvcreate -L +240M -n lvdata1 vgdata
  2.   Logical volume "lvdata1" created
複製代碼

查看邏輯卷
lvs
<ignore_js_op style='font: 14px/21px Tahoma, "Microsoft Yahei", Simsun; color: rgb(68, 68, 68); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; -ms-word-wrap: break-word; font-size-adjust: none; font-stretch: normal; background-color: rgb(255, 255, 255); -webkit-text-stroke-width: 0px;'> 

七、格式化邏輯卷mkfs.ext4  /dev/vgdata/lvdata1

  1. [root@steven ~]# mkfs.ext4 /dev/vgdata/lvdata1
  2. mke2fs 1.41.12 (17-May-2010)
  3. 文件系統標籤=
  4. 操做系統:Linux
  5. 塊大小=1024 (log=0)
  6. 分塊大小=1024 (log=0)
  7. Stride=0 blocks, Stripe width=0 blocks
  8. 61440 inodes, 245760 blocks
  9. 12288 blocks (5.00%) reserved for the super user
  10. 第一個數據塊=1
  11. Maximum filesystem blocks=67371008
  12. 30 block groups
  13. 8192 blocks per group, 8192 fragments per group
  14. 2048 inodes per group
  15. Superblock backups stored on blocks: 
  16.         8193, 24577, 40961, 57345, 73729, 204801, 221185
  17. 正在寫入inode表: 完成                            
  18. Creating journal (4096 blocks): 完成
  19. Writing superblocks and filesystem accounting information: 完成
  20. This filesystem will be automatically checked every 24 mounts or
  21. 180 days, whichever comes first.  Use tune2fs -c or -i to override.
複製代碼


八、掛載 若是要永久掛載 就要寫在/etc/fstab 文件裏面
mount /dev/vgdata/lvdata1  /aming

  1. [root@steven ~]# cd /aming
  2. [root@steven aming]# ls
  3. lost+found
複製代碼
相關文章
相關標籤/搜索