<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 18.2 iSCSI target 的設定 能夠完成 iSCSI target/initiator 設定的項目非常多 ([注4](#ps4)),鳥哥找的到的就有底下這幾個: * Linux SCSI target framework (tgt):[http://stgt.sourceforge.net/](http://stgt.sourceforge.net/) * Linux-iSCSI Project:[http://linux-iscsi.sourceforge.net/](http://linux-iscsi.sourceforge.net/) * Open-iSCSI:[http://www.open-iscsi.org/](http://www.open-iscsi.org/) 由于被我們 CentOS 6.x 官方直接使用的是 tgt 這個軟件,因此底下我們會使用 tgt 來介紹整個 iSCSI target 的設定喔! * * * ### 18.2.1 所需軟件與軟件結構 CentOS 將 tgt 的軟件名稱定義為 scsi-target-utils ,因此你得要使用 yum 去安裝他才行。至于用來作為 initiator 的軟件則是使用 linux-iscsi 的項目,該項目所提供的軟件名稱則為 iscsi-initiator-utils 。所以,總的來說,你需要的軟件有: * scsi-target-utils:用來將 Linux 系統仿真成為 iSCSI target 的功能; * iscsi-initiator-utils:掛載來自 target 的磁盤到 Linux 本機上。 那么 scsi-target-utils 主要提供哪些檔案呢?基本上有底下幾個比較重要需要注意的: * /etc/tgt/targets.conf:主要配置文件,設定要分享的磁盤格式與哪幾顆; * /usr/sbin/tgt-admin:在線查詢、刪除 target 等功能的設定工具; * /usr/sbin/tgt-setup-lun:建立 target 以及設定分享的磁盤與可使用的客戶端等工具軟件。 * /usr/sbin/tgtadm:手動直接管理的管理員工具 (可使用配置文件取代); * /usr/sbin/tgtd:主要提供 iSCSI target 服務的主程序; * /usr/sbin/tgtimg:建置預計分享的映像文件裝置的工具 (以映像文件仿真磁盤); 其實 CentOS 已經將很多功能都設定好了,因此我們只要修訂配置文件,然后啟動 tgtd 這個服務就可以啰! 接下來,就讓我們實際來玩一玩 iSCSI target 的設定吧! * * * ### 18.2.2 target 的實際設定 從上面的分析來看,iSCSI 就是透過一個網絡接口,將既有的磁盤給分享出去就是了。那么有哪些類型的磁盤可以分享呢? 這包括: * 使用 dd 指令所建立的大型檔案可供仿真為磁盤 (無須預先格式化); * 使用單一分割槽 (partition) 分享為磁盤; * 使用單一完整的磁盤 (無須預先分割); * 使用磁盤陣列分享 (其實與單一磁盤相同方式); * 使用軟件磁盤陣列 (software raid) 分享成單一磁盤; * 使用 LVM 的 LV 裝置分享為磁盤。 其實沒有那么復雜,我們大概知道可以透過 (1)大型檔案; (2)單一分割槽; (3)單一裝置 (包括磁盤、數組、軟件磁盤陣列、LVM 的 LV 裝置文件名等等) 來進行分享。在本小節當中,我們將透過新的分割產生新的沒有用到的分割槽、LVM 邏輯滾動條、大型檔案等三個咚咚來進行分享。既然如此,那就得要先來搞定這些咚咚啰! 要注意喔,等一下我們要分享出去的數據,最好不要被使用,也最好不要開機就被掛載 (/etc/fstab 當中沒有存在記錄的意思)。 那么就來玩玩看啰! * 建立所需要的磁盤裝置 既然 iSCSI 要分享的是磁盤,那么我們得要準備好啊!目前預計準備的磁盤為: * 建立一個名為 /srv/iscsi/disk1.img 的 500MB 檔案; * 使用 /dev/sda10 提供 2GB 作為分享 (從第一章到目前為止的分割數); * 使用 /dev/server/iscsi01 的 2GB LV 作為分享 (再加入 5GB /dev/sda11 到 server VG 中)。 實際處理的方式如下: ``` # 1\. 建立大型檔案: [root@www ~]# mkdir /srv/iscsi [root@www ~]# dd if=/dev/zero of=/srv/iscsi/disk1.img bs=1M count=500 [root@www ~]# chcon -Rv -t tgtd_var_lib_t /srv/iscsi/ [root@www ~]# ls -lh /srv/iscsi/disk1.img -rw-r--r--. 1 root root 500M Aug 2 16:22 /srv/iscsi/disk1.img &lt;==容量對的! # 2\. 建立實際的 partition 分割: [root@www ~]# fdisk /dev/sda &lt;==實際的分割方式自己處理吧! [root@www ~]# partprobe &lt;==某些情況下得 reboot 喔! [root@www ~]# fdisk -l Device Boot Start End Blocks Id System /dev/sda10 2202 2463 2104483+ 83 Linux /dev/sda11 2464 3117 5253223+ 8e Linux LVM # 只有輸出 /dev/sda{10,11} 信息,其他的都省略了。注意看容量,上述容量單位 KB [root@www ~]# swapon -s; mount &#124; grep 'sda1' # 自己測試一下 /dev/sda{10,11} 不能夠被使用喔!若有被使用,請 umount 或 swapoff # 3\. 建立 LV 裝置 : [root@www ~]# pvcreate /dev/sda11 [root@www ~]# vgextend server /dev/sda11 [root@www ~]# lvcreate -L 2G -n iscsi01 server [root@www ~]# lvscan ACTIVE '/dev/server/myhome' [6.88 GiB] inherit ACTIVE '/dev/server/iscsi01' [2.00 GB] inherit ``` * 規劃分享的 iSCSI target 檔名 iSCSI 有一套自己分享 target 檔名的定義,基本上,藉由 iSCSI 分享出來的 target 檔名都是以 iqn 為開頭,意思是:『iSCSI Qualified Name (iSCSI 合格名稱)』的意思([注5](#ps5))。那么在 iqn 后面要接啥檔名呢?通常是這樣的: ``` iqn.yyyy-mm.&lt;reversed domain name&gt;:identifier iqn.年年-月.單位網域名的反轉寫法 :這個分享的target名稱 ``` 鳥哥做這個測試的時間是 2011 年 8 月份,然后鳥哥的機器是 www.centos.vbird ,反轉網域寫法為 vbird.centos, 然后,鳥哥想要的 iSCSI target 名稱是 vbirddisk ,那么就可以這樣寫: * iqn.2011-08.vbird.centos:vbirddisk 另外,就如同一般外接式儲存裝置 (target 名稱) 可以具有多個磁盤一樣,我們的 target 也能夠擁有數個磁盤裝置的。 每個在同一個 target 上頭的磁盤我們可以將它定義為邏輯單位編號 (Logical Unit Number, LUN)。我們的 iSCSI initiator 就是跟 target 協調后才取得 LUN 的存取權就是了 ([注5](#ps5))。在鳥哥的這個簡單案例中,最終的結果,我們會有一個 target ,在這個 target 當中可以使用三個 LUN 的磁盤。 * 設定 tgt 的配置文件 /etc/tgt/targets.conf 接下來我們要開始來修改配置文件了。基本上,配置文件就是修改 /etc/tgt/targets.conf 啦。這個檔案的內容可以改得很簡單, 最重要的就是設定前一點規定的 iqn 名稱,以及該名稱所對應的裝置,然后再給予一些可能會用到的參數而已。 多說無益,讓我們實際來實作看看: ``` [root@www ~]# vim /etc/tgt/targets.conf # 此檔案的語法如下: &lt;target iqn.相關裝置的target名稱&gt; backing-store /你的/虛擬設備/完整檔名-1 backing-store /你的/虛擬設備/完整檔名-2 &lt;/target&gt; &lt;target iqn.2011-08.vbird.centos:vbirddisk&gt; backing-store /srv/iscsi/disk1.img &lt;==LUN 1 (LUN 的編號通常照順序) backing-store /dev/sda10 &lt;==LUN 2 backing-store /dev/server/iscsi01 &lt;==LUN 3 &lt;/target&gt; ``` 事實上,除了 backing-store 之外,在這個配置文件當中還有一些比較特別的參數可以討論看看 (man tgt-admin): * backing-store (虛擬的裝置), direct-store (實際的裝置): 設定裝置時,如果你的整顆磁盤是全部被拿來當 iSCSI 分享之用,那么才能夠使用 direct-store 。不過,根據網絡上的其他文件, 似乎說明這個設定值有點危險的樣子。所以,基本上還是建議單純使用模擬的 backing-store 較佳。例如鳥哥的簡單案例中,就通通使用 backing-store 而已。 * initiator-address (用戶端地址): 如果你想要限制能夠使用這個 target 的客戶端來源,才需要填寫這個設定值。基本上,不用設定它 (代表所有人都能使用的意思), 因為我們后來會使用 iptables 來規范可以聯機的客戶端嘛! * incominguser (用戶賬號密碼設定): 如果除了來源 IP 的限制之外,你還想要讓使用者輸入賬密才能使用你的 iSCSI target 的話,那么就加用這個設定項目。 此設定后面接兩個參數,分別是賬號與密碼啰。 * write-cache [off|on] (是否使用快取): 在預設的情況下,tgtd 會使用快取來增快速度。不過,這樣可能會有遺失數據的風險。所以,如果你的數據比較重要的話, 或許不要使用快取,直接存取裝置會比較妥當一些。 上面的設定值要怎么用呢?現在,假設你的環境中,僅允許 192.168.100.0/24 這個網段可以存取 iSCSI target,而且存取時需要帳密分別為 vbirduser, vbirdpasswd ,此外,不要使用快取,那么原本的配置文件之外,還得要加上這樣的參數才行 (基本上,使用上述的設定即可,底下的設定是多加測試用的,不需要填入你的設定中)。 ``` [root@www ~]# vim /etc/tgt/targets.conf &lt;target iqn.2011-04.vbird.centos:vbirddisk&gt; backing-store /home/iscsi/disk1.img backing-store /dev/sda7 backing-store /dev/server/iscsi01 initiator-address 192.168.100.0/24 incominguser vbirduser vbirdpasswd write-cache off &lt;/target&gt; ``` * 啟動 iSCSI target 以及觀察相關端口與磁盤信息 再來則是啟動、開機啟動,以及觀察 iSCSI target 所啟動的埠口啰: ``` [root@www ~]# /etc/init.d/tgtd start [root@www ~]# chkconfig tgtd on [root@www ~]# netstat -tlunp &#124; grep tgt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN 26944/tgtd tcp 0 0 :::3260 :::* LISTEN 26944/tgtd # 重點就是那個 3260 TCP 封包啦!等一下的防火墻務必要開放這個埠口。 # 觀察一下我們 target 相關信息,以及提供的 LUN 數據內容: [root@www ~]# tgt-admin --show Target 1: iqn.2011-08.vbird.centos:vbirddisk &lt;==就是我們的 target System information: Driver: iscsi State: ready I_T nexus information: LUN information: LUN: 0 Type: controller &lt;==這是個控制器,并非可以用的 LUN 喔! ....(中間省略).... LUN: 1 Type: disk &lt;==第一個 LUN,是磁盤 (disk) 喔! SCSI ID: IET 00010001 SCSI SN: beaf11 Size: 2155 MB &lt;==容量有這么大! Online: Yes Removable media: No Backing store type: rdwr Backing store path: /dev/sda10 &lt;==磁盤所在的實際文件名 LUN: 2 Type: disk SCSI ID: IET 00010002 SCSI SN: beaf12 Size: 2147 MB Online: Yes Removable media: No Backing store type: rdwr Backing store path: /dev/server/iscsi01 LUN: 3 Type: disk SCSI ID: IET 00010003 SCSI SN: beaf13 Size: 524 MB Online: Yes Removable media: No Backing store type: rdwr Backing store path: /srv/iscsi/disk1.img Account information: vbirduser &lt;==額外的帳戶信息 ACL information: 192.168.100.0/24 &lt;==額外的來源 IP 限制 ``` 請將上面的信息對照一下我們的配置文件呦!看看有沒有錯誤就是了!尤其注意每個 LUN 的容量、實際磁盤路徑! 那個項目不能錯誤就是了。(照理說 LUN 的數字應該與 backing-store 設定的順序有關,不過,在鳥哥的測試中, 出現的順序并不相同!因此,還是需要使用 tgt-admin --show 去查閱查閱才好!) * 設定防火墻 不論你有沒有使用 initiator-address 在 targets.conf 配置文件中,iSCSI target 就是使用 TCP/IP 傳輸數據的, 所以你還是得要在防火墻內設定可以聯機的客戶端才行!既然 iSCSI 僅開啟 3260 埠口,那么我們就這么進行即可: ``` [root@www ~]# vim /usr/local/virus/iptables/iptables.allow iptables -A INPUT -p tcp -s 192.168.100.0/24 --dport 3260 -j ACCEPT [root@www ~]# /usr/local/virus/iptables/iptables.rule [root@www ~]# iptables-save &#124; grep 3260 -A INPUT -s 192.168.100.0/24 -p tcp -m tcp --dport 3260 -j ACCEPT # 最終要看到上述的輸出字樣才是 OK 的呦!若有其他用戶需要聯機, # 自行復制 iptables.allow 內的語法,修改來源端即可。 ``` * * *
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看