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 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:
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.
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:
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:
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.