Skip to main content
  • »
  • EODATA »
  • Jak zamontować eodata przy użyciu s3fs w systemie Linux na NSIS

Jak zamontować eodata przy użyciu s3fs w systemie Linux na NSIS

W tym samouczku uzyskasz dostęp do zasobów EODATA za pomocą maszyny wirtualnej z systemem Linux działającej w chmurze NSIS przy użyciu s3fs, które jest narzędziem do montowania zasobników (ang. bucket) S3.

Co zostanie omówione?

  • Uzyskiwanie dostępu do eodata przy użyciu s3fs na nowych maszynach wirtualnych korzystających z wstępnie zainstalowanych obrazów

  • Uzyskiwanie dostępu do eodata przy użyciu s3fs na starszych maszynach wirtualnych lub maszynach wirtualnych korzystających z niestandardowych obrazów

Wymagania wstępne

Nr 1 Konto

Jest wymagane konto hostingowe NSIS z dostępem do interfejsu Horizon: https://horizon.cloudferro.com.

Nr 2 Maszyna wirtualna Linux

Musisz korzystać z maszyny wirtualnej Ubuntu, Debian lub CentOS działającej w chmurze NSIS. Musi być ona podłączona do sieci eodata.

Maszynę wirtualną można utworzyć przy użyciu jednego z domyślnych obrazów lub przesyłając własny obraz dysku systemu operacyjnego. Zobacz poniższe artykuły:

Jak stworzyć wirtualną maszynę z Linuxem na chmurze NSIS Cloud i uzyskać do niej dostęp przy użyciu linuxowego wiersza poleceń

Jak utworzyć maszynę wirtualną Linux i uzyskać do niej dostęp z pulpitu Windows na NSIS Cloud.

Jak przesłać niestandardowy obraz przy użyciu OpenStack CLI na NSIS Cloud.

Nr 3 Poświadczenia

To wymaganie wstępne ma zastosowanie tylko w przypadku korzystania z obrazu systemu operacyjnego, który nie ma dostępu do repozytorium EODATA za pośrednictwem s3fs. Może to być na przykład niestandardowy obraz przesłany przez użytkownika.

Aby skonfigurować s3fs, musisz uzyskać odpowiednie poświadczenia. Postępuj zgodnie z artykułem: Jak uzyskać poświadczenia używane do uzyskiwania dostępu do EODATA na maszynie wirtualnej w chmurze NSIS?.

Uzyskiwanie dostępu do eodata przy użyciu s3fs na nowych maszynach wirtualnych skonfigurowanych przy użyciu obrazów domyślnych

Nowe maszyny wirtualne działające w chmurze NSIS, które są skonfigurowane przy użyciu domyślnych obrazów Ubuntu lub CentOS, mają dostęp do repozytorium eodata. Jest ono montowane automatycznie podczas uruchamiania w katalogu /eodata. W tym celu wykorzystywana jest usługa eodata.mount. Aby przejść do repozytorium eodata, wystarczy wykonać następujące polecenie:

cd /eodata

Teraz możesz wyświetlić jego zawartość za pomocą poniższego polecenia:

ls

Wynik powinien być podobny do tego:

../_images/eodata-ubuntu_creodias.png

Uwaga

Dalsza część tego artykułu dotyczy tylko maszyn wirtualnych korzystających z systemów operacyjnych skonfigurowanych za pomocą niestandardowych obrazów.

Uzyskiwanie dostępu do eodata przy użyciu s3fs na starszych maszynach wirtualnych lub maszynach wirtualnych skonfigurowanych przy użyciu niestandardowych obrazów

Starsze maszyny wirtualne działające w chmurze NSIS mogą nie mieć skonfigurowanego s3fs. To samo dotyczy maszyn wirtualnych skonfigurowanych z niestandardowymi obrazami przesłanymi przez użytkownika. W takim przypadku należy zainstalować i skonfigurować s3fs.

Krok 1: Instalacja s3fs

Wykonaj kolejne kroki w zależności od używanego systemu operacyjnego:

Ubuntu lub Debian

Uzyskaj dostęp do maszyny wirtualnej za pomocą SSH lub konsoli internetowej. Zaktualizuj pakiety w systemie i zainstaluj s3fs:

sudo apt update && sudo apt upgrade
sudo apt install s3fs

CENTOS

Repozytoria CentOS nie zawierają s3fs. Dlatego musisz skompilować go samodzielnie.

Najpierw, używając lokalnego komputera, odwiedź stronę internetową https://github.com/s3fs-fuse/s3fs-fuse/releases (zawiera ona wydania s3fs).

Następnie w sekcji z najnowszą wersją znajdź część Assets. Następnie znajdź link do wersji zip Source code.

../_images/s3fs_assets_download.png

Zapamiętaj lub zapisz go gdzieś. Później użyjesz go jako parametru polecenia wget w celu pobrania jej na maszynę wirtualną.

Uzyskaj dostęp do swojej maszyny wirtualnej w chmurze NSIS za pomocą konsoli internetowej lub SSH.

Zaktualizuj swoje pakiety:

sudo yum update

Zainstaluj wymagania programy, w tym fuse, kompilator C++ i make:

sudo yum install automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel wget unzip

Teraz użyj wget, aby pobrać kod źródłowy. Zastąp https://github.com/s3fs-fuse/s3fs-fuse/archive/refs/tags/v1.91.zip linkiem do znalezionego wcześniej kodu źródłowego:

wget https://github.com/s3fs-fuse/s3fs-fuse/archive/refs/tags/v1.91.zip

Użyj polecenia ls, aby sprawdzić, czy archiwum zip zostało pobrane:

ls

Rozpakuj archiwum (zastąp v1.91.zip nazwą pobranego archiwum):

unzip v1.91.zip

Użyj polecenia ls, aby znaleźć nazwę katalogu, który właśnie został wyodrębniony:

ls

Teraz przejdź do tego katalogu (zastąp s3fs-fuse-1.91 nazwą uprzednio wyodrębnionego katalogu):

cd s3fs-fuse-1.91

Przeprowadź kompilację, wykonując kolejno następujące polecenia:

./autogen.sh
./configure
make
sudo make install

s3fs powinien być teraz zainstalowany w /usr/local/bin/s3fs.

Krok 2: Utworzenie pliku, w którym przechowywana będzie para kluczy s3fs

Utwórz gdzieś w katalogu domowym plik, w którym będzie przechowywana para kluczy używanych do uzyskiwania dostępu do repozytorium eodata. Nadaj mu opisową nazwę, na przykład .passwd-eodata.

Umieść w tym pliku dane uwierzytelniające (klucze access i secret) uzyskane zgodnie z Wymaganiem wstępnym nr 3, klucze powinny być oddzielone dwukropkiem. Na przykład, jeśli klucz access to CLOUDFERRO, a klucz secret to PUBLIC, plik powinien mieć następującą zawartość:

CLOUDFERRO:PUBLIC

Zmień uprawnienia tego pliku na 600. Na przykład, jeśli plik jest przechowywany w katalogu domowym i nazywa się .passwd-eodata, polecenie, które należy wykonać to:

chmod 600 ~/.passwd-eodata

Krok 3: Konfigurowanie montowania repozytorium eodata

Otwórz do edycji plik /etc/fstab za pomocą ulubionego edytora tekstu wiersza poleceń. Będziesz potrzebować do tego uprawnień sudo. Na przykład, jeśli chcesz użyć nano, wykonaj polecenie:

sudo nano /etc/fstab

Postępuj zgodnie z jedną z poniższych metod, w zależności od tego, czy chcesz, aby repozytorium eodata było automatycznie montowane podczas uruchamiania systemu:

Metoda 1: Automatyczne montowanie repozytorium przy uruchamianiu systemu.

Dodaj do pliku /etc/fstab następujący wiersz:

/usr/bin/s3fs#DIAS /eodata fuse passwd_file=/home/eouser/.passwd-eodata,_netdev,allow_other,use_path_request_style,uid=0,umask=0222,mp_umask=0222,gid=0,url=eodata.nsiscloud.polsa.gov.pl 0 0

W powyższym poleceniu:

  • Zastąp /usr/bin/s3fs lokalizacją pliku binarnego s3fs. Jeśli został on zainstalowany za pomocą apt w systemie Debian lub Ubuntu, nie musisz nic tutaj zmieniać. Jeśli używasz samodzielnie skompilowanej wersji s3fs utworzonej w systemie CentOS, jak wyjaśniono w tym artykule, lokalizacja to /usr/local/bin/s3fs.

  • Zastąp /home/eouser/.passwd-eodata lokalizacją pliku zawierającego parę kluczy używaną do montowania repozytorium eodata. Jeśli postępowałeś(-aś) zgodnie z tym artykułem, ten plik został utworzony w kroku 2.

Metoda 2: Bez automatycznego montowania repozytorium podczas uruchamiania systemu.

Dodaj do pliku /etc/fstab następujący wiersz:

/usr/bin/s3fs#DIAS /eodata fuse noauto,passwd_file=/home/eouser/.passwd-eodata,_netdev,allow_other,use_path_request_style,uid=0,umask=0222,mp_umask=0222,gid=0,url=http://eodata.nsiscloud.polsa.gov.pl/ 0 0

W powyższym poleceniu:

  • Zastąp /usr/bin/s3fs lokalizacją pliku binarnego s3fs. Jeśli został on zainstalowany za pomocą apt w systemie Debian lub Ubuntu, nie musisz nic tutaj zmieniać. Jeśli używasz samodzielnie skompilowanej wersji s3fs utworzonej w systemie CentOS, jak wyjaśniono w tym artykule, lokalizacja to /usr/local/bin/s3fs.

  • Zastąp /home/eouser/.passwd-eodata lokalizacją pliku zawierającego parę kluczy używaną do montowania repozytorium eodata. Jeśli postępowałeś(-aś) zgodnie z tym artykułem, ten plik został utworzony w kroku 2.

Różnica między tym kodem a kodem podanym w Metodzie 1 polega na dodaniu opcji noauto.

Krok 4: Zamontowanie repozytorium eodata

Zamontuj /eodata za pomocą s3fs:

sudo mount /eodata

Pamiętaj, że jeśli w poprzednim kroku została wybrana metoda 2 , będziesz musieć wykonać to polecenie po każdym uruchomieniu systemu, aby uzyskać dostęp do repozytorium eodata.

Możesz teraz przejść do katalogu /eodata:

cd /eodata

Aby wyświetlić jego zawartość, wprowadź następujące polecenie:

ls

Wynik powinien być podobny do tego:

../_images/eodata-debian_creodias.png

Gromadzenie dodatkowych dzienników dla s3fs

W celu rozwiązywania problemów i testowania można gromadzić dodatkowe dzienniki, montując eodata z dodatkowymi opcjami debugowania. Oto instrukcje używane zarówno dla obrazów domyślnych, jak i niestandardowych.

Opcje debugowania dla obrazów domyślnych

Wykonaj następujące polecenie, aby wykonać wszystkie operacje jako root:

sudo -i

Jeśli repozytorium eodata zostało zamontowany automatycznie, należy je odmontować:

umount /eodata

Utwórz plik, który będzie używany do przechowywania pary kluczy wykorzystywanych do uzyskiwania dostępu do eodata. W tym przykładzie będziemy przechowywać ten plik w katalogu domowym, a jego nazwa to .passwd-s3fs.

Umieść w tym pliku dane uwierzytelniające (klucze access i secret) uzyskane zgodnie z Wymaganiem wstępnym nr 3, klucze powinny być oddzielone dwukropkiem. Na przykład, jeśli klucz access to CLOUDFERRO, a klucz secret to PUBLIC, plik powinien mieć następującą zawartość:

CLOUDFERRO:PUBLIC

Zmień uprawnienia dla tego pliku na 600 używając na przykład polecenia chmod:

chmod 600 ~/.passwd-s3fs

Utwórz katalog, który będzie punktem montowania. Nazwij go na przykład testing_dir, aby odróżnić go od standardowego punktu montowania.

mkdir testing_dir

Następnie zamontuj tam eodata z dodatkowymi opcjami zbierania większej liczby dzienników:

s3fs DIAS testing_dir -o passwd_file=~/.passwd-s3fs -o url=http://eodata.nsiscloud.polsa.gov.pl/ -o use_path_request_style -o umask=0002 -o curldbg -d

Przejdź do tego katalogu i wyświetl jego zawartość:

cd testing_dir
ls

Wynik powinien być podobny do tego, co widać na poniższym zrzucie ekranu:

../_images/eodata-ubuntu_creodias.png

Aby wykonać test, skopiuj z niego plik do lokalnego katalogu, na przykład za pomocą polecenia cp:

cp Sentinel-5P/TROPOMI/L2__CH4___/2022/10/15/S5P_OFFL_L2__CH4____20221015T111843_20221015T130012_25936_03_020400_20221017T034959/S5P_OFFL_L2__CH4____20221015T111843_20221015T130012_25936_03_020400_20221017T034959.nc ~/

Te i inne potencjalnie przydatne dzienniki będą zapisywane w katalogu /var/log/. Możesz używać tych logów samodzielnie lub wysłać je do działu obsługi klienta NSIS, jeśli o to poprosi.

Opcje debugowania dla obrazów niestandardowych

Wykonaj następujące polecenie, aby wykonać wszystkie polecenia jako root:

sudo -i

Jeśli masz zamontowane repozytorium eodata, odmontuj je (zastąp /eodata lokalizacją, w której repozytorium jest zamontowane):

umount /eodata

Utwórz katalog, który będzie punktem montowania. Nazwij go na przykład testing_dir, aby odróżnić go od standardowego punktu montowania.

mkdir testing_dir

Następnie zamontuj tam eodata z dodatkowymi opcjami zbierania większej liczby dzienników:

s3fs DIAS testing_dir -o passwd_file=~/.passwd-s3fs -o url=http://eodata.nsiscloud.polsa.gov.pl/ -o use_path_request_style -o umask=0002 -o curldbg -d

Przejdź do tego katalogu i wyświetl jego zawartość:

cd testing_dir
ls

Aby wykonać test, skopiuj z niego plik do lokalnego katalogu, na przykład za pomocą polecenia cp:

cp Sentinel-5P/TROPOMI/L2__CH4___/2022/10/15/S5P_OFFL_L2__CH4____20221015T111843_20221015T130012_25936_03_020400_20221017T034959/S5P_OFFL_L2__CH4____20221015T111843_20221015T130012_25936_03_020400_20221017T034959.nc ~/

Te i inne potencjalnie przydatne dzienniki będą zapisywane w katalogu /var/log/. Możesz używać tych logów samodzielnie lub wysłać je do działu obsługi klienta NSIS, jeśli o to poprosi.