作者 主題: lvm2 可否超過32個snapshot(快照)  (閱讀 8350 次)

0 會員 與 1 訪客 正在閱讀本文。

gamekingdom

  • 懷疑的國中生
  • **
  • 文章數: 30
    • 檢視個人資料
lvm2 可否超過32個snapshot(快照)
« 於: 2007-10-15 02:28 »
目前使用FC5
因有需要,要建立約70個快照(snapshot)
但當建立到第32個就無法再建立了....

不知有沒有辦法增加快照的數目?
要重編核心嗎?  要修改那一個核新選項?

netfrog

  • 可愛的小學生
  • *
  • 文章數: 4
    • 檢視個人資料
lvm2 可否超過32個snapshot(快照)
« 回覆 #1 於: 2007-10-24 10:58 »
你可以嘗試一下http://evms.sourceforge.net/  〔Enterprise Volume Management System
〕,和lvm2是一樣的
不过具体支持具体snapshot个数我也不清楚。

不過他對
引用

device-mapper: dm-linear: Device lookup failed
device-mapper: error adding target to table

提出了解決方案

http://evms.sourceforge.net/faq.html
見volume activation小節
http://evms.sourceforge.net/install/kernel.html
見BD-Claim Patch小節

我也是在網咖工作,對這個問題也很感興趣。

引用

而且 iscsi Enterprise target 可利用ietadm動態裝載/卸載 target 目標磁碟
只要我們寫一個bash shell 小程式,偵測使用者的login狀態,logout時刪除快照,再重新創造一個新快照給它們,就可以做到類似cluster的功能,又不破壞原使資料區.

不過現在問題又來了.....
LVM2的快照只可以有32個,要如何加大snapshot的數目?
(我的客戶端有100台左右... 網咖...)


能否貼下你的bash shell小程式,我這邊測試多人并發訪問同一個target的時候經常出問題。

目前 ,我在Linux端建立了一個 target software (用的open-source的iSCSI Enterprise Target) ,我在Linux上掛了兩塊硬盤, 一個是系統盤, 另外一個 data盤被shared 了(全是ntfs格式的)

我用兩臺PC (WindowsXP)做測試 , 當都用Microsoft Initiator 2.03 連接這個target成功後, 並分別 auto-mount Linux端shared那個盤後,  當兩臺PC同時要在mounted的盤上創建目錄的時候, 我發現 ,當時兩臺PC是都成功的創建目錄了。 但是 當他們 umount的時候, 再重新連接的時候, 發現只有一個 用戶的創建的目錄還在 ,另外一個用戶創建的目錄丟失了。

gamekingdom

  • 懷疑的國中生
  • **
  • 文章數: 30
    • 檢視個人資料
lvm2 可否超過32個snapshot(快照)
« 回覆 #2 於: 2007-10-25 02:30 »
引述: "netfrog"
你可以嘗試一下http://evms.sourceforge.net/  〔Enterprise Volume Management System
〕,和lvm2是一樣的
不过具体支持具体snapshot个数我也不清楚。


這兩天我再去編譯一下kernel試試看可否解決這個問題,謝謝你!

引用


我也是在網咖工作,對這個問題也很感興趣。
能否貼下你的bash shell小程式,我這邊測試多人并發訪問同一個target的時候經常出問題。
目前 ,我在Linux端建立了一個 target software (用的open-source的iSCSI Enterprise Target) ,我在Linux上掛了兩塊硬盤, 一個是系統盤, 另外一個 data盤被shared 了(全是ntfs格式的)

我用兩臺PC (WindowsXP)做測試 , 當都用Microsoft Initiator 2.03 連接這個target成功後, 並分別 auto-mount Linux端shared那個盤後,  當兩臺PC同時要在mounted的盤上創建目錄的時候, 我發現 ,當時兩臺PC是都成功的創建目錄了。 但是 當他們 umount的時候, 再重新連接的時候, 發現只有一個 用戶的創建的目錄還在 ,另外一個用戶創建的目錄丟失了


這個問題是我一開始玩iscsi target就碰到的...
是因為iet本身並沒有支援共享碟的"超級保護", 而且它是走"磁區"封包區塊的方式,也就是說,它基本上是假設一次一個使用者讀寫,就跟我們單機磁碟的用法一樣,如果一個磁區同時有兩個user存取自然就會產生資料毀損.
雖然用cluster的方式可避免多人共用iscsi磁區時資料毀損(我已經試過了..),但不是我們網咖要的共享碟"超級保護",在這裡不討論.

Iscsi Enterprise Target支援三種ISCSI Target的方式:檔案,實體硬碟,LVM分割區
所以在網咖的環境要做"超級保護", 要用lvm2開snapshot,因為lvm2的快照是"可寫入的"這對我們的"超級保護"有極大的作用.
我們將lvm2建立一個大的共享碟(例如:200GB),再建立32個快照,每個2GB,將ISCSI連進來的USER每人分配一個快照,它可自由修改共享碟的內容,但不會改到共享碟的內容, 而平時要修改共享碟時,就用iscsi"超級使用者",連進來就讓它直接連接到共享碟修改.
每五分鐘檢查一次連線狀況,如果user離線就將該user組快照刪除/重建.
(cat /proc/net/iet/session ,這個檔就是目前連入的iscsi使用者的狀況,可用ietadm去變更一些參數)

這個方法我已實際使用過了,是可行的. 但有一些問題還要解決:

1.就是32個快照上限的限制問題.
2.當用iscsi"超級使用者"連入修改,因為32個快照是隨時監視"共享碟"變化的,也就是說,如果你在共享碟修改500MB資料,在32個快照就會寫入16GB的資料,會讓系統效能降低很多,目前的解決方法是先將所有USER停機,刪除所有快照,再UPDATE資料,再重建快照,恢復連線.
3.有時user端的快照資料寫滿時(2GB),會造成整個FEDORA主機當機(要重開機),這點原因還不明.

netfrog

  • 可愛的小學生
  • *
  • 文章數: 4
    • 檢視個人資料
lvm2 可否超過32個snapshot(快照)
« 回覆 #3 於: 2007-10-25 08:17 »
是否可以換位思考一下問題

既然我們能多位用戶訪問到這個ISCSI磁碟,但是不能對其修改[超級保護],那么最好這個磁碟在客戶端被隱藏或者不能被正常訪問到。

我們可以用客戶機windows下面的volume snapshot軟件,比如說用VERITAS Backup Exec,為這個共享的ISCSI磁碟〔或者snapshot〕創建一個snapshot[同時隱藏此共享ISCSI磁碟],然后映射此snapshot為本地一個盤符〔此快照可讀寫〕,把snapshot讀寫的改變放在本地硬盤,這比用戶改變數據時通過網絡上傳他改變的snapshot要好許多,這就是某些收費軟件所謂的本地緩存〔比如銳起〕。



引用
1.就是32個快照上限的限制問題.

如果snapshot在本地,每臺客戶機只要有一個snapshot就可以了

引用
2.當用iscsi"超級使用者"連入修改,因為32個快照是隨時監視"共享碟"變化的,也就是說,如果你在共享碟修改500MB資料,在32個快照就會寫入16GB的資料,會讓系統效能降低很多,目前的解決方法是先將所有USER停機,刪除所有快照,再UPDATE資料,再重建快照,恢復連線.

一般說來,刪除資料或者格式化磁盤是不占快照空間的,只有增加資料占快照空間,而且每個客戶機對應一個快照,只有增加資料的那個客戶機的快照會增加容量,其他客戶機快照不會改變。而且可以配合windows下面的策略來隱藏映射的snapshot磁區,不讓用戶訪問,只通過程序來訪問。

引用
3.有時user端的快照資料寫滿時(2GB),會造成整個FEDORA主機當機(要重開機),這點原因還不明.

這個估計就是IET的問題了,個人覺得還是降低snapshot的使用頻率,減少客戶機往快照中寫入資料為妙。比如讓客戶機把資料寫入本地硬盤。

gamekingdom

  • 懷疑的國中生
  • **
  • 文章數: 30
    • 檢視個人資料
lvm2 可否超過32個snapshot(快照)
« 回覆 #4 於: 2007-10-26 04:27 »
引述: "netfrog"
是否可以換位思考一下問題

既然我們能多位用戶訪問到這個ISCSI磁碟,但是不能對其修改[超級保護],那么最好這個磁碟在客戶端被隱藏或者不能被正常訪問到。

我們可以用客戶機windows下面的volume snapshot軟件,比如說用VERITAS Backup Exec,為這個共享的ISCSI磁碟〔或者snapshot〕創建一個snapshot[同時隱藏此共享ISCSI磁碟],然后映射此snapshot為本地一個盤符〔此快照可讀寫〕,把snapshot讀寫的改變放在本地硬盤,這比用戶改變數據時通過網絡上傳他改變的snapshot要好許多,這就是某些收費軟件所謂的本地緩存〔比如銳起〕。



這的確是個好辦法,我一直就想找這樣的軟體...
VERITAS Backup Exec/銳起 這些我沒用過,我再找安裝試試看.

要找一些快照是要可寫入的, 最好是有免費ShareWare軟體. 網咖業不景氣,要節省成本.

我之前試過一些所謂的"還原軟體",例如:還原精靈/DeepFreeze/go back,雖然也是快照的方式來紀錄,但卻把本地緩存寫入受保護的那台磁碟的"未使用空間"中,根本不能改設到其他磁碟/檔案/分割區,所以也會變更iscsi共享碟的內容,不可行...

也就是說,我們要找可將本地緩存設定至一個檔案或其它分割區中軟體...

事實上微軟提供免費的Shared Computer ToolKit就是標準的本地緩存軟體,用來保護WINDOWS系統碟,用快照的方式對C碟唯讀,將有修改的磁區本地緩存在自設的分割區中,重開機就還原,但也只能保護WINDOWS系統碟,不可保護其它磁碟,功能被微軟"閹割"掉,真是太氣人了!!

如果有人知道有這類的軟體,歡迎提出討論!

gamekingdom

  • 懷疑的國中生
  • **
  • 文章數: 30
    • 檢視個人資料
lvm2 可否超過32個snapshot(快照)
« 回覆 #5 於: 2007-11-18 07:03 »
自推一下,已解決!

這兩天改用fedora core 8 之後,LVM可以製作128個快照,實驗確認無誤
128不是最大值喔,只是沒有再試下去而已(因128個對我已夠用..)

想用iscsi的人可以試試看喔!

netfrog

  • 可愛的小學生
  • *
  • 文章數: 4
    • 檢視個人資料
回覆: lvm2 可否超過32個snapshot(快照)
« 回覆 #6 於: 2007-11-26 02:00 »
能否放出一個具體的方案教程呢?市面上類似產品都是收費的。

你以前沒弄好時遇到的三個問題是如何解決的?

user端往iet盤里寫資料你是如何控制的?一個用戶寫500M,10個用戶就5G,網絡占用,服務器磁盤空間占用?

如果我想應用到我的網咖里面,能否得到你的指導呢?

我的email   netfrog@gmail.com

netfrog

  • 可愛的小學生
  • *
  • 文章數: 4
    • 檢視個人資料
回覆: lvm2 可否超過32個snapshot(快照)
« 回覆 #7 於: 2008-01-07 09:53 »
實在對shell編程沒有感覺,能不能分享一下你的腳本。還有提示下你的最新進度?

gamekingdom

  • 懷疑的國中生
  • **
  • 文章數: 30
    • 檢視個人資料
回覆: lvm2 可否超過32個snapshot(快照)
« 回覆 #8 於: 2008-01-08 06:33 »
實在對shell編程沒有感覺,能不能分享一下你的腳本。還有提示下你的最新進度?

最近在忙著寫餐飲pos機的程式,沒有再研究iscsi的,等過一陣子有空了會繼續...

bash shell是和公司同事共同寫的,不是我一個人的創作,我不方便公佈,請見諒.
不過可以分享一下原理,用bash shell判斷user端斷線後重建snapshot,要先去讀出session檔的內容
1.取得tid號碼 :
cat session|grep tid|cut -d ' ' -f1|cut -d ':' -f2

2.取得目前連線的電腦名稱:
cat session|grep sid|cut -d ' ' -f2|cut -d ':' -f3

3.取得目前連線的電腦IP位址:
cat session|grep cid|cut -d ' ' -f2|cut -d ':' -f2


判斷出有不存在連線,就先停止ISCSI連線,再刪除該SNAPSHOT,然後重建,例如:
要刪除tid為111的連線,該snapshot名稱為snap111.
停止ISCSI連線
ietadm --op delete --tid=111 --lun=0
ietadm --op delete --tid=111

刪除
lvremove -f /dev/vgXXXX/snap111

重建
lvcreate -L 2GB -c 64 -p rw -s -n snap111 /dev/vgXXXX/lv220gb
ietadm --op new --tid=111 --params Name=pc111
ietadm --op new --tid=111 --lun=0 --params Path=/dev/vgXXXX/snap111

大致上就是這樣,希望這些資料幫得上你的忙.
有問題再提出討論.


gamekingdom

  • 懷疑的國中生
  • **
  • 文章數: 30
    • 檢視個人資料
回覆: lvm2 可否超過32個snapshot(快照)
« 回覆 #9 於: 2008-09-06 15:27 »
又碰到問題了!

我目前已於數間網咖用FC8架設ISCSI系統,用LVM2來做snapshot(我開到150個snapshot),一切正常無誤.

但最近想將ISCSI的主機改用xen核心的虛擬機器來掛一個win xp的虛擬單機,方便我做遊戲更新.
我將FC8的核心換成XEN重新編譯後,ISCSI都可以正常啟動,看似一切無誤, 結果老問題又來了,一超過32個snapshot就又出現"記憶體無法配置"的問題,無法正確的建立snapshot!  但一換回舊核心又正常無誤....

這一定是某個編譯核心選項的問題, 請問可以明確的告訴我到底是那個選項要選取嗎?  因為若不解決這個問題,我永遠只能用fc8這個版本,而不敢換其他版本了, 希望有大大能幫我一下,謝謝!!

chien0937

  • 可愛的小學生
  • *
  • 文章數: 1
    • 檢視個人資料
回覆: lvm2 可否超過32個snapshot(快照)
« 回覆 #10 於: 2009-06-14 17:17 »
請問  快照如果寫入接近100% 要如何處理
1.卸載直接刪除? 但用戶端連線中 如何卸載刪除
2.動態加大快照容量? 同樣的用戶端在連線,如何達到 online 中加大快照容量