CentOS iSCSI服务器搭建------LUN篇
先上服务器信息(你懂得)
[root@node ~]# cat /etc/redhat-release
CentOS release 6.6 (Final)
[root@node ~]# uname -r
2.6.32-504.el6.x86_64
[root@node ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:AD:E7:36
inet addr:192.168.221.130 Bcast:192.168.221.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fead:e736/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:186222 errors:0 dropped:0 overruns:0 frame:0
TX packets:25234 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:233390875 (222.5 MiB) TX bytes:7363625 (7.0 MiB) lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
我们先看一下关于LUN理解,这里引用一段通俗易懂的话解释一下:
LUN的全称是Logical Unit Number,也就是逻辑单元号。我们知道SCSI总线上可挂接的设备数量是有限的,一般为6个或者15个,我们可以用target ID(也有称为SCSI ID的)来描述这些设备,设备只要一加入系统,就有一个代号,我们在区别设备的时候,只要说几号几号就ok了。 而实际上我们需要用来描述的对象,是远远超过该数字的,于是我们引进了lun的概念,也就是说lun id的作用就是扩充了target id。每个target下都可以有多个lun device,我们通常简称lun device为lun,这样就可以说每个设备的描述就有原来的target X变成target x lun y了,那么显而易见的,我们描述设备的能力增强了。就好比,以前你给别人邮寄东西,写地址的时候,可以写: xx市人民大街54号 xxx(收) 但是自从高楼大厦越来越多,你不得不这么写: xx市人民大街54号xx大厦518室 xxx (收) 所以我们可以总结一下,LUN就是我们为了使用和描述更多设备及对象而引进的一个方法而已,一点也没什么特别的地方。 LUN ID不等于某个设备,只是个号码而已,不代表任何实体属性,在我们的实际环境里,我们碰到的LUN可能是磁盘空间,可能是磁带机,或者是media changer等等。 LUN的神秘之处(相对于一些新手来说)在于,它很多时候不是什么可见的实体,而是一些虚拟的对象。比如一个阵列柜,主机那边看作是一个target device,那为了某些特殊需要,我们要将磁盘阵列柜的磁盘空间划分成若干个小的单元给主机来用,于是就产生了一些什么逻辑驱动器的说法,也就是比target device级别更低的逻辑对象,我们习惯于把这些更小的磁盘资源称之为LUN0,LUN1,LUN2……什么的。而操作系统的机制使然,操作系统识别的最小存储对象级别就是LUN Device,这是一个逻辑对象,所以很多时候被称之为Logical Device。
再来一盘理解
LUN是逻辑单元号,它与iSCSI存储服务器共享。iSCSI 目标器通过TCP/IP网络共享它的物理驱动器给发起程序(initiator)。这些来自一个大型存储(SAN:Storage Area Network)的驱动器集合称作LUN。在真实环境中LUN是在LVM中定义的,因为它可以按需扩展。
为什么使用LUN
LUN用于存储,SAN存储大多数由LUN的集群来组成存储池,LUN由目标器的几块物理驱动器组成。我们可以使用LUN作为系统物理驱动器来安装操作系统,LUN可以用在集群、虚拟服务器、SAN中。在虚拟服务器中使用LUN的主要用途是作为操作系统的存储。LUN的性能和可靠性根据在创建目标存储服务器时所使用的驱动器决定。
1.列出所有分区列表
[root@node ~]# fdisk -l Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d8676 Device Boot Start End Blocks Id System Disk /dev/sdc: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00012d5d Device Boot Start End Blocks Id System Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009c78c Device Boot Start End Blocks Id System
/dev/sda1 * 1 4463 35840000 83 Linux
/dev/sda2 4463 5222 6102016 82 Linux swap / Solaris
2.使用/dev/sdb创建LVM
[root@node ~]# fdisk -cu /dev/sdb //-c代表关闭DOS兼容模式 -u 于列出分区表时给出扇区而不是柱面的大小 Command (m for help): n //输入n创建新分区
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1 //给创建的分区一个分区号
First sector (2048-41943039, default 2048): //使用默认,按回车
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): //使用默认,按回车
Using default value 41943039 Command (m for help): t //改变分区类型,输入t
Selected partition 1 //选择分区
Hex code (type L to list codes): 8e //设置LVM,看下表
Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): l //l查看所有文件系统类型 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx
5 Extended 42 SFS 86 NTFS volume set da Non-FS data
6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt
9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access
a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT
1e Hidden W95 FAT1 Command (m for help): p //列出分区表 Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d8676 Device Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 8e Linux LVM Command (m for help): w //输入w写入设置
The partition table has been altered! Calling ioctl() to re-read partition table.
Syncing disks.
reboot,重启一下
查看/dev/sdb信息
[root@node ~]# fdisk -l /dev/sdb Disk /dev/sdb: 21.5 GB, 21474836480 bytes
213 heads, 34 sectors/track, 5791 cylinders
Units = cylinders of 7242 * 512 = 3707904 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d8676 Device Boot Start End Blocks Id System
/dev/sdb1 1 5792 20970496 8e Linux LVM
3.为LUN创建逻辑卷
[root@node ~]# pvcreate /dev/sdb1 //pvcreate命令创建物理卷
-bash: pvcreate: command not found //没有找到命令
[root@node ~]# yum install lvm2 //安装lvm
[root@node ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
[root@node ~]# vgcreate vg_iscsi /dev/sdb1 //用iSCSI的名字创建卷组来区分这个卷组。
Volume group "vg_iscsi" successfully created
[root@node ~]# lvcreate -L 5G -n lv_iscsi vg_iscsi //定义了4个逻辑卷
Logical volume "lv_iscsi" created.
[root@node ~]# lvcreate -L 5G -n lv_iscsi-1 vg_iscsi //因此在我的iSCSI target上就会有4个LUN
Logical volume "lv_iscsi-1" created.
[root@node ~]# lvcreate -L 5G -n lv_iscsi-2 vg_iscsi
Logical volume "lv_iscsi-2" created.
[root@node ~]# lvcreate -L 5G -n lv_iscsi-3 vg_iscsi
Volume group "vg_iscsi" has insufficient free space (1279 extents): 1280 required.
[root@node ~]# lvcreate -L 4G -n lv_iscsi-3 vg_iscsi
Logical volume "lv_iscsi-3" created.
[root@node ~]# pvs //列出物理卷
PV VG Fmt Attr PSize PFree
/dev/sdb1 vg_iscsi lvm2 a-- 20.00g 1020.00m
[root@node ~]# vgs //列出卷组
VG #PV #LV #SN Attr VSize VFree
vg_iscsi 1 4 0 wz--n- 20.00g 1020.00m
[root@node ~]# lvs //列出逻辑卷
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_iscsi vg_iscsi -wi-a----- 5.00g
lv_iscsi-1 vg_iscsi -wi-a----- 5.00g
lv_iscsi-2 vg_iscsi -wi-a----- 5.00g
lv_iscsi-3 vg_iscsi -wi-a----- 4.00g
4.在Target中定义LUN
通过以上步骤,我们已经创建了逻辑卷并准备使用LUN,现在我们在Target配置中定义LUN,有这样做它才能用在客户机中(发起程序)。
VIM打开Target配置文件/etc/tgt/targets.conf
追加以下内容到该配置文件。
<target iqn.2015-09.com.node:tgt1>
backing-store /dev/vg_iscsi/lv_iscsi
</target>
<target iqn.2015-09.com.node:tgt1>
backing-store /dev/vg_iscsi/lv_iscsi-1
</target>
<target iqn.2015-09.com.node:tgt1>
backing-store /dev/vg_iscsi/lv_iscsi-2
</target>
<target iqn.2015-09.com.node:tgt1>
backing-store /dev/vg_iscsi/lv_iscsi-3
</target>
注释:
iSCSI有一套自己的共享target文件名的定义,基本上通过iSCSI共享出来的target文件名都是以iqn(iSCSI Qualified Name,iSCSI合格名称),iqn后面的格式如下: iqn.yyyy-mm.<翻转域名>:identifier 年 月 target名称
我的机器是www.node.com,翻转域名就是com.node 其实,com.node中,node的名字可以随便起。。。。。。。
重载tgt服务配置
[root@node ~]# /etc/init.d/tgtd reload
Updating SCSI target daemon configuration: [确定]
验证当前可用的LUN
[root@node ~]# tgt-admin --show
Target 1: iqn.2015-09.com.node:tgt1 //我们的Target
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller //默认的LUN 0是保留的
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1 //第一个LUN
Type: disk //磁盘
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 5369 MB, Block size: 512 //容量
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: rdwr
Backing store path: /dev/vg_iscsi/lv_iscsi //磁盘实际所在的文件名
Backing store flags:
LUN: 2
Type: disk
SCSI ID: IET 00010002
SCSI SN: beaf12
Size: 5369 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: rdwr
Backing store path: /dev/vg_iscsi/lv_iscsi-1
Backing store flags:
LUN: 3
Type: disk
SCSI ID: IET 00010003
SCSI SN: beaf13
Size: 5369 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: rdwr
Backing store path: /dev/vg_iscsi/lv_iscsi-2
Backing store flags:
LUN: 4
Type: disk
SCSI ID: IET 00010004
SCSI SN: beaf14
Size: 4295 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: rdwr
Backing store path: /dev/vg_iscsi/lv_iscsi-3
Backing store flags:
Account information: //额外的账户信息
ACL information: //额外的权限限制
ALL
OK,至此,LUN篇结束。
参考:
linux中国:https://linux.cn/ 我最喜欢的linux中文网站
使用iSCSI Target创建集中式安全存储(一):https://linux.cn/article-4971-1.html
鸟哥的LINUX私房菜--服务器架设篇
存储基础知识之——磁盘阵列原理及操作实战:
http://codefine.co/%E5%88%86%E7%B1%BB/%E8%BD%AF%E4%BB%B6%E6%8A%80%E6%9C%AF/%E5%AD%98%E5%82%A8/page/4/#post-1222
CentOS iSCSI服务器搭建------LUN篇的更多相关文章
- CentOS iSCSI服务器搭建------Target篇
先上服务器信息(当然是我YY的服务器.哈哈) [root@node ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@node ...
- CentOS iSCSI服务器搭建------Initiator篇
服务器信息: [root@initiator ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@initiator ~]# un ...
- Centos vsftpd服务器搭建
Centos vsftpd服务器搭建 时间:2016-07-18 1.最为简单的vsftpd服务器搭建 1.安装vsftpd 1.yum 安装 yum install vsftpd 2.rpm文件安装 ...
- centos dhcp 服务器搭建 多vlan
centos dhcp 服务器搭建 多vlan centos 6.5 版本 /etc/dhcp/dhcpd.conf 服务器配置文件 /etc/rc.d/init.d/ ...
- iSCSI 服务器搭建
一.简介 SCSI(Small Computer System Interface),小型计算机系统接口,是一种用于计算机及其周边设备之间(硬盘.软驱.光驱.打印机.扫描仪等)系统级接口的独立处理器标 ...
- centos svn服务器搭建
1.安装svnyum install subversion查看安装目录rpm -ql subversion 查看yum安装subversion的位置 2.创建仓库创建版本库目录mkdir -p /va ...
- CentOS SVN 服务器搭建
源码目录:/home/user/project 工程名:project 工程目录:/source/svn/project 访问地址:svn://ip/project 一. 安装svn yum inst ...
- linux centos ftp服务器搭建
原文参考 步骤一:构建vsftpd服务器 1)使用yum安装vsftpd软件包yum -y install vsftpdrpm -q vsftpd #确认安装成功,显示vsftpd对应版本 vsftp ...
- Centos 7服务器搭建MySQL(mariadb)服务
1.下载并安装MySQL yum install mariadb mariadb-server -y 2.启动MySQL systemctl start mariadb 3.对mariadb进行初始化 ...
随机推荐
- [腾讯 TMQ] 零基础学习 Fiddler 抓包改包
本文转载于https://testerhome.com/topics/7159 一.Fiddler1.1.简介Fiddler是一款HTTP协议调试代理工具,它能够抓取记录本机所有HTTP(S)请求,通 ...
- Session和Cookie之间存在的区别与联系
一. 概念理解 你可能有留意到当你浏览网页时,会有一些推送消息,大多数是你最近留意过的同类东西,比如你想买桌子,上淘宝搜了一下,结果连着几天会有各种各样的桌子的链接.这是因为 你浏览某个网页的时候,W ...
- svn解决冲突和commit
当使用svn出现 svn: E155015: 提交失败(细节如下):svn: E155015: 提交终止: “/home/test.file” 处于冲突状态 解决办法: svn resolved /h ...
- css 温故而知新 1px的问题
解决方法1: //border @mixin border($pos, $color) { content: ""; position: absolute; transform-o ...
- iOS GCD不同场景的使用比較
/** * async -- 并发队列 * 会创建线程.一般同一时候开多条 * 并发运行任务 */ <span style="font-size:14px;"> ...
- Android各种模拟器使用笔记
[√]天天模拟器 优点: 缺点: 个人经验 ADB 版本过低的解决办法 去启动时的广告方法 去除多余进程方法 ADB无法连接到模拟器 原因分析: 解决方案: 安装APP(APK)时非常非常慢TTMNQ ...
- Windows进程间通信--共享内存映射文件(FileMapping)--VS2012下发送和接收
之前以为两个互不相关的程序a.exe b.exe通信就只能通过网络,人家说可以通过发消息,我还深以为不然,对此,我表示万分惭愧. 之前课本上说的进程间通信,有共享内存.管道等之类的,但没有自己操刀写过 ...
- Unity3D性能优化之Draw Call Batching
在屏幕上渲染物体,引擎需要发出一个绘制调用来访问图形API(iOS系统中为OpenGL ES).每个绘制调用需要进行大量的工作来访问图形API,从而导致了CPU方面显著的性能开销. Unity在运行时 ...
- explicit 和 implicit 的用法
explicit 和 implicit 属于转换运算符,如用这两者可以让我们自定义的类型支持相互交换 explicti 表示显式转换,如从 A -> B 必须进行强制类型转换(B = (B)A) ...
- Monkey源代码分析之事件源
上一篇文章<Monkey源代码分析之执行流程>给出了monkey执行的整个流程.让我们有一个概貌,那么往后的文章我们会尝试进一步的阐述相关的一些知识点. 这里先把整个monkey类的结构图 ...