




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、在GT3上安裝GridFtp服務的配置心得清華大學計算機系高性能所 王 慶1. 系統結構程序流程 認證過程GridFtp ServerGridFtp ServerGlobus Service ContainerReliableFileTransfer Service(it works just like globus-url-copy in GT 2.2)Client ApplicationAccess Service InstanceStatus ReportPostgresDatabaseServerProxyHost CertificationUser CertificationProx
2、yProxyUser CertificationProxy2. 系統配置a. 配置GridFtp服務器用戶名: gridftp 機器名: frank.tsinghua* 設置環境變量set GLOBUS_LOCATION=<Globus Toolkit alpha3 安裝目錄>, set path=$path:$GLOBUS_LOCATION/bin: $GLOBUS_LOCATION/sbinset LD_LIBARAYPATH=$GLOBUS_LOCATION/lib:$ LD_LIBARAYPATH在進行一下操作之前,請先確定以上環境變量是否配置正確,任何時候系統報告找不到某
3、某文件,請再次檢查你的環境變量*獲取證書開啟GridFtp的站點必須擁有host證書,關于如何配置自己的CA站點和獲取host證書,請參考1,2,3*建立證書代理 為了方便,請在$HOME目錄下建立.globus目錄,并執行以下命令 >ln s /etc/grid-security/hostcert.pem $HOME/.globus/usercert.pem>ln s /etc/grid-security/hostkey.pem $HOME/.globus/userkey.pem然后就可以建立用戶代理證書>grid-proxy-init verify debug (出錯,請
4、參考3.1)如果要消除該證書,請執行>grid-proxy-destroy*配置GridFtp用戶subject到本地系統用戶的映射 GridFtp必須把用戶證書的subject映射到本地系統用戶,才能夠對本地目錄進行訪問,因此必須建立grid-mapfile。 在$HOME目錄下建立文件”.gridmap” 文件結構為: “<subject name>” <local system username> 我在測試時,填入的是: “/O=Globus/OU=frank.tsinghua/CN=kantsky” gridftp*啟動服務 在完成以上各步驟以后,就可以啟
5、動GridFtp服務了 >in.ftpd S p 9844 (-S選項是讓服務在后臺運行,-p 選項是設置服務端口)* 測試* 用另一用戶kantsky登陸(請確保該用戶已有統一CA站點簽署的用戶證書,并建立好了證書代理),執行以下命令:>globus-url-copy s “/O=Globus/OU=frank.tsinghua/CN=host/frank.tsinghua” gsiftp:/localhost:9844/tmp/file1 file:/tmp/file2如果執行發生錯誤,請參考3.2如果你已完成下面的步驟b,可執行以下命令測試GridFtpClient, >
6、;java org.globus.ftp.app.Transfer localhost 9844 /tmp file1 localhost 9844 /tmp file2 注意這里是8個參數,一個不能少。b. ServiceContainer站點配置用戶名: kantsky *安裝Globus toolkit alpha3.0 binary package 參考有關文章,并測試以保證你安裝成功。 *數據庫服務器設置(如果沒有安裝postgres數據庫,請先安裝再執行以下步驟) >su postgres>initdb/初始化數據庫 >pg_ctl o “-i” l logfil
7、e start /啟動服務器 >createdb ogsa /建立ogsa數據庫 >psql d ogsa l rft_database_schema.sql /執行該文件中的sql語句,建立關系表 注: 我安裝完后,發現找不到該文件,不知道是我安裝的問題,還是globus忘給了。如果你沒有找到,就自己建一個吧,可能的命令如下(因為是反編譯binary版所帶的rft包得到的,所以可能有不全的地方):drop sequence transferid_seq;create sequence transferid_seq;drop table proxyinfo;drop table r
8、estart;drop table transfer;create table transfer(id int primary key default nextval('transferid_seq'),source_url text not null,dest_url text not null,status int,attempts int,dcau bool,parallel_streams int,tcp_buffer_size int);create table proxyinfo( transfer_id int references transfer, proxy
9、_loc text not null);create table restart( transfer_id int references transfer, marker text not null);要停止服務器,執行: >pg_ctl stop 由于你需要對數據庫進行操作,所以還需要建立合法的賬號,建議和你當前的用戶名相同 >createuser kantsky*測試* 執行 >psql d ogsa u kantsky c “select * from Transfer”如果執行成功表明你的數據庫配置成功了。*ReliableFileTransfer(RFT) Serv
10、ice的配置打開server-config.wsdd文件,找到 RFT服務的配置位置修改以下幾個參數<parameter name="username" value="kantsky"/> /你的用戶名<parameter name="connectionURL" value="jdbc:postgresql:/localhost/ogsa"/>/數據庫連接字符串<parameter name="password" value=""/>/用
11、戶密碼<parameter name="JdbcDriver" value="org.postgresql.Driver"/>/ jdbc驅動<parameter name="gridmap" value="/etc/grid-security/grid-mapfile"/> /grid-mapfile位置*獲取證書和建立證書代理這個站點只需要用戶證書,所以你只要擁有該用戶的用戶證書就可以了。(關于用戶證書獲取,請參考1,2,3),執行>grid-proxy-init verify d
12、ebug 建立證書代理*配置grid-mapfile和GridFtp服務器站點一樣,這個站點也必須配置相應的subject到用戶名的映射,文件結構同前面提到的.gridmap文件一樣。這里我們設置為:“/O=Globus/OU=frank.tsinghua/CN=kantsky” kantsky“/O=Globus/OU=frank.tsinghua/CN=client” kantsky*啟動服務在Globus安裝目錄下,執行>ant startContainer啟動服務c. 客戶端配置用戶名:client 基本配置:擁有與前述站點相同的CA簽署的用戶證書,并建立證書代理你可以自己寫客戶
13、端測試,也可以直接用globus的那個服務瀏覽程序測試。1 用globus的服務瀏覽程序測試在client-gui-config.wsdd文件中加入以下幾行:<panel portType="ReliableTransferPortType" class="org.globus.ogsa.gui.ReliableTransferPortTypePanel"/><panel serviceData="FileTransferProgress" class="org.globus.ogsa.gui.FileTr
14、ansferProgressServiceDataPanel"/><panel serviceData="FileTransferRestartMarker" class="org.globus.ogsa.gui.FileTransferRestartMarkerServiceDataPanel"/>(1)執行ant gui, 在服務列表中找到ReliableFileTransfer服務項,雙擊該項。(2) 在Authorization一欄中,將XML Signature和后面Delegation中的Full選上(3) 輸入你
15、要建立的實例名, 單擊create instance按鈕如果成功,將出現一個新的窗口.(4) 在sourceURL和destURL中填入相應的文件位置,如: gsiftp:/localhost:9844/tmp/file1和 gsiftp:/localhost:9844/tmp/file2(5) 在Authorization一欄中,將XML Signature和后面Delegation中的Full選上(6) 單擊submitJob執行拷貝2 自己寫客戶端測試如果你想自己寫個客戶端測試一下,可以參考以下代碼:url="96:8081/ogsa/service
16、s/base/reliabletransfer/ReliableTransferFactoryService"try setProperty(Constants.MSG_SEC_TYPE, Constants.SIGNATURE);/建立實例 FactoryServiceGridLocator factoryService = new FactoryServiceGridLocator(); URL endpoint=new URL(url); FactoryPortType factory = factoryService.getFactoryPort(endpoint); GSI
17、Utils.setDefaultGSIProperties(Stub)factory,endpoint); CreationType creation = new CreationType(); / 建立安全上下文 (Stub)factory)._setProperty(Constants.MSG_SEC_TYPE, Constants.SIGNATURE); (Stub)factory)._setProperty(GSIConstants.GSI_MODE,GSIConstants.GSI_MODE_FULL_DELEG); ServiceTerminationReferenceType s
18、tatus = factory.createService(creation); GSR reference = GSR.newInstance(status.getReference();/獲取實例的引用ReliableFileTransferServiceGridLocator locator=new ReliableFileTransferServiceGridLocator(); ReliableTransferPortType client=locator.getReliableTransferPort(status);/進行文件傳輸 String sourceURL="g
19、si96:9844/tmp/frank.txt" String destURL="gsi96:9844/tmp/wang.txt" ReliableTransferAttributes attributes=new ReliableTransferAttributes(); ReliableTransferOptions options=new ReliableTransferOptions(); options.setParallelStreams(1); options.setTcpBufferSize(10
20、24); attributes.setReliableTransferOptions(options);/ 該引用的安全上下文 (Stub)client)._setProperty(Constants.MSG_SEC_TYPE, Constants.SIGNATURE); (Stub)client)._setProperty(GSIConstants.GSI_MODE,GSIConstants.GSI_MODE_FULL_DELEG); client.submitTransferJob(sourceURL,destURL,attributes); catch(Exception e) e.pr
21、intStackTrace(); 3. 典型錯誤 1. grid-proxy-init出錯a. 系統找不到usercert.pem,請檢查你是否已獲取證書且usercert.pem的所有者是你而非root賬號,并把它拷到$HOME/.globus/目錄下b. usercert.pem和userkey.pem權限設置錯誤,請確保兩個文件的所有者是該用戶,并且userkey的權限分別是400c. 對于用戶證書,當你加上-verify選項時,報verify error,這一般發生在自己建立CA站點的情況下,在配置CA站點時,請注意一級站點和二級站點的設置,必須保證每個證書的subject除Commo
22、nName外,其他項都和CA的subject相同d. 本地分布式CA的設置,必須把CA站點所給的分布式CA包設置為默認CA機構2. globus-url-copy 出錯a. connection refused, 可能是你的服務器未啟動,或者端口已被占用(通常使用 S選項時會發生)b. system call faild, 一般是由于你沒有全限操作你需要讀取或寫入的目標文件或目錄c. target subject name匹配錯誤, 確定-s 后所跟的subject名是否和ftp服務器的subject 名字相同d. no local globus id map ,在$HOME/.gridmap文件里找不到相應的名字映射e. 找不到/tmp/x509_u*文件,你必須建立證書代理才能使用這個程序f. n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論