2011-09-07 86 views
3

我的公司目前正在使用AWS的S3fs和Ec2。我們已經在我們的Ec2實例上安裝了我們的S3桶,但是過了一段時間(例如一週),一些桶自行卸載,我們的服務器實例幾乎變得無用。錯誤是「傳輸端點未連接」。S3桶隨機卸載EC2實例

S3fs版本:從源代碼編譯1.61

FUSE版本:2.84.1從源

建立

操作系統:Linux,Ubuntu的11.04

是否有某種安全機制,以防止(或最少檢測)這些問題?

+0

更多詳情:操作系統版本? s3fs lib版本?安裝選項?理由使用s3fs代替EBS存儲? – Anatoly

+0

我們遇到了同樣的問題。目前我們的理論是它與負載有關。我們正在測試s3fs作爲應用程序服務器共享資源的共享文件系統,我們注意到在負載測試期間出現這些錯誤。如果我發現更多,我會更新。 – tsykoduk

+1

運行 s3fs --version 亞馬遜簡單存儲服務的文件系統1.61 pkg配置--modversion保險絲 2.8.6 我必須建立這兩個版本的手。 今天我能夠傳輸數十個文件的數千個來回。我讓它在我們的測試服務器上運行,但是這看起來不錯,因爲之前的版本在持續20到30分鐘後會失敗。 – tsykoduk

回答

1

偉大的洞察力。沒有想過這個。但這裏有3項預防措施,我們可以採取:

1)創建一個自動安裝,這樣在很萬一EC2下跌,S3被安裝回一次EC2回來通過/etc/fstab中

2)或/和如果願意,創建一個二次使用自動安裝的cron:

echo "/usr/bin/s3fs [s3 bucket name] [mountpoint path] -o allow_other" >> automount-s3 
sudo mv automount-s3 /usr/sbin 
sudo chown root:ubuntu /usr/sbin/automount-s3 
sudo chmod +x /usr/sbin/automount-s3 

crontab -e 

添加此行

@reboot /usr/sbin/automount-s3 

3 )我還會創建另一個每小時一次的cron來檢查S3是否仍然掛載 - 這可以通過檢查EC2路徑中是否存在虛擬文件來完成。如果文件不存在,cron會通過調用「/ usr/bin/s3fs -o allow_other [s3存儲桶名稱] [掛載點路徑]」來執行手動掛載。最好觸發一封電子郵件給管理員,並將其登錄到系統中。

1

s3fs是一個不錯的主意,但請記住,即使呼叫s3 可能有些內部(或者說「在他們的網絡上」),您仍然在通過HTTP掛載一個文件系統。從長遠來看,這並不穩定。

也許你可以通過使用任何一種(我猜)共享網絡文件系統來重新提出你的問題來尋求替代方案並分享你想要完成的事情。我可以看到的吸引力,但與亞馬遜EC2人們通常使用無共享方法和任何額外的網絡相關的應避免要能夠回收情況下更容易,等等。

快樂延長我的答案。