LVM名稱介紹
PV:物理磁盤
VG:卷組,多個PV可以組成一個VG,一個VG可以划分成多個LV(邏輯卷)。
PP:物理區塊,將一個VG邏輯的划分成連續的小塊。
LP:邏輯區塊,若干個PP組成一個LP,多個PP組成一個LP,類似於raid0;一個LP映射多個PP鏡像,類似於raid1。
LV:由VG划分,若干連續LP組成一個LV(對應OS層的分區
LVM創建到掛載到物理機再到虛機實驗
需要安裝 lvm2
yum install lvm2
1.給虛擬機掛載三個雲硬盤作為硬盤
2.創建pv
pv create /dev/vdc /dev/vdd /dev/vde
pvscan查看
3.創建vg
-s表示最小的塊的大小
“zhou”VG創建成功,包含三塊硬盤
注:vgextend vg名 硬盤名 擴展VG ( vgreduce減少)
4.創建 lv
lvcreate -L 20G -n lvname vgname
pvs;lvs;vgs;
后續就是對lv的處理 格式化后可以使用
服務端安裝
yum install scsi-target-utils
vim/etc/tgt/targets.conf
- <targetiqn.2014-07.com.tecmint:tgt1>
- backing-store /dev/vg_iscsi/lv_iscsi
- backing-store /dev/vg_iscsi/lv_iscsi
- </target>
- iSCSI 采取限定名 (iqn.2014-07.com.tecmint:tgt1).
- 名稱隨便你
- 用於確定目標名, 這是這台服務器中的第一個目標
- LVM共享特定的LUN,backstore 通過fdisk -l查看磁盤路徑
service tgtd start
- #tgtadm --mode target --op show
tgt-admin --show
上面的命令會列出可用LUN的下面這些信息
- iSCSI 限定名
- iSCSI 已經准備好
- 默認LUN 0被控制器所保留
- LUN 1是我們定義的目標器
- 這里我為每個LUN都定義了4GB
- 在線: 是的,這就是可以使用的LUN
initiar端
1.發現
iscsiadm -m discovery --type sendtargets --portal IP
2.登陸scsi,掛載到物理機
命令:iscsiadm -m node -T <target-name> -p <ip-address>:<port> --login(執行發現之后自動登陸)
#iscsiadm -m node -T iqn.2016-07.com.zmg:tgt2 -p 10.133.47.139:3260 --login
可以看到lun已經掛載到物理主機上了,接下來就是掛載到虛擬機。
端口scsi iscsiadm -m node -T [target-name] -p [ip-address] –u
fdisk可以看到disk已經出現在host上
3.掛載到虛擬機
將這個disk attach到虛擬機上,使用libvirt實現
root:~#
virsh attach-disk instance-0000000b --source /dev/mapper/cinder--volumes-xxxxx --target vdc
Disk attached successfully
ssh到虛擬機里面,發現又多了一個disk
總結:LVM創建lv,然后把邏輯卷定義為iscsi存儲的目標設備target,會有LUN ID,然后客戶端initiator端發現目標設備
,然后登陸鏈接目標設備,掛載為物理機的磁盤,然后通過libvirt driver掛載到虛擬機上。
目的:iscsi是為了將存儲設備通過ip網絡連接在一起,使數據存儲不受地域限制。
工作原理:
iscsi的協議自頂向下一共可以分為三層:
1。scsi層:根據客戶端發出的請求建立 scsi cdb(命令和數據塊),並傳給iscsi層。同時接收來自iscsi層的cdb(命令描述塊),並向應用返回數據。
2。iscsi層:對sicsi cdb進行封裝,以便能夠在基於tcp/ip協議的網絡上進行傳輸,完成scsi到tcp/ip的協議映射。這一層是iscsi協議的核心層。(ISCSI協議封裝SCSI報文為ip數據包)
3。tcp/ip層:對IP報文進行路由和轉發,並且提供端到端的透明可靠的傳輸.(TCP/IP報文封裝)
遇到問題小記
問題描述:SCSI服務器端與客戶端可相互ping通,但當iSCSI客戶端discover scsi-targets時,報錯 No route to host 防火牆 iptables的原因 關掉firewalld