Jak uzyskać dostęp do object storage za pomocą OpenStack CLI na NSIS
Chmura obliczeniowa oferuje możliwość obsługi dużych zestawów danych bezpośrednio na zdalnym serwerze. Moduł OpenStack Swift został stworzony specjalnie w celu umożliwienia dostępu do nieustrukturyzowanych danych, które mogą rosnąć bez ograniczeń, z uwzględnieniem następujących celów projektowych:
trwałość,
skalowalność,
współbieżność (równoległe działanie) w całym zestawie danych,
przy pełnym zachowaniu prostoty API.
Swift jest instalowany jako niezależny moduł, ale na poziomie składni jest używany za pośrednictwem parametrów polecenia openstack.
Co zostanie omówione?
Jak zainstalować Swift
Jak połączyć Swift z chmurą OpenStack
Podstawowe operacje openstack z kontenerami
Podstawowe operacje openstack z obiektami
Wymagania wstępne
Nr 1 Hosting
Wymagane jest konto hostingowe NSIS dostępne pod adresem https://tm.nsiscloud.polsa.gov.pl/login. Jeśli chcesz śledzić artykuły na temat object storage na platformie Horizon, skorzystaj również z linku Jak korzystać z Object Storage w NSIS
Nr 2 Instalacja lub aktywacja polecenia openstack
Aby można było połączyć się z chmurą, musi działać polecenie openstack. Jeśli środowisko nie zostało jeszcze zainstalowane, skorzystaj z artykułu Jak zainstalować OpenStackClient dla systemu Linux na NSIS.
Nr 3 Uwierzytelnianie w OpenStack przy użyciu poświadczeń aplikacji
Następnie musisz uwierzytelnić swoje konto w chmurze. Zazwyczaj odbywa się to poprzez uruchomienie polecenia openstack z użyciem pliku RC dla uwierzytelniania jedno- lub dwuskładnikowego. W przypadku modułu Swift ta metoda nie zadziała. Jest on uwierzytelniany za pomocą poświadczeń aplikacji, jak wyjaśniono w artykule.
Jak wygenerować lub użyć poświadczeń aplikacji za pośrednictwem CLI na NSIS Cloud.
Nr 4 Znajomość zagadnień object storage na NSIS OpenStack
Ten artykuł wyjaśnia podstawy korzystania z interfejsu Horizon:
Jak korzystać z Object Storage w NSIS.
Swift można rozumieć jako narzędzie CLI służące do uzyskiwania dostępu do object storage w środowisku OpenStack.
Nr 5 Zainstalowane środowisko Python
Poniższe artykuły zawierają sekcje dotyczące instalacji środowiska Python:
Na Ubuntu można również użyć virtualenvwrapper: Jak zainstalować Python virtualenv lub virtualenvwrapper na NSIS Cloud
Jak zainstalować Swift
Poniżej przedstawiono, jak zainstalować Swift w systemie Ubuntu 22.04:
sudo apt-get install python3-pip # if not already installed, install pip on Ubuntu 22.04
pip install python-swiftclient # install python openstack client
Następnie należy użyć zaleceń z wymagania wstępnego nr 3, aby uwierzytelnić Swift w NSIS.
Podstawowe polecenia openstack dla danych obiektowych
OpenStack umożliwia umieszczenie dużych ilości danych w tak zwanych
„kontenerach”, które są podobne do folderów na komputerze stacjonarnym. Kontenery mogą ponadto zawierać
„pliki”, które tutaj nazywane są „obiektami”.
W związku z tym polecenia umożliwiające pracę z kontenerami danych i obiektami wyglądają następująco:
openstack container
openstack object
Użyj opcji --help, aby wyświetlić na przykład parametry:
openstack container --help
Podstawowe operacje openstack CLI z kontenerami
Nazwa kontenera nie może zawierać spacji ani znaków specjalnych.
Prawidłowo |
Nieprawidłowo |
|---|---|
backupvelero |
kopia zapasowa velero |
backup-velero |
Tworzenie kontenera
Polecenie openstack container może tworzyć, liczyć i usuwać kontenery:
openstack container create backup09
openstack container list
openstack container delete backup09
W ten sposób możesz:
utworzyć nowy kontener o nazwie backup09,
wylistować go i w ten sposób pokazać, że został utworzony, a następnie
usunąć i ponownie
użyć polecenia list,
tym razem, aby pokazać, że został usunięty:
Podstawowe operacje openstack CLI na obiektach
Przesyłanie obiektów
Podobnie, możliwe jest tworzenie, zapisywanie, listowanie i usuwanie obiektów (które można traktować jak „pliki” w zwykłym znaczeniu tego słowa). Ogólna forma jednego z takich poleceń byłaby następująca:
openstack object create <container_name> <object_name>
Na przykład:
Wylistujmy zawartość kontenera i sprawdźmy, czy znajduje się tam plik test.txt:
Aby zapisać plik lokalnie, dodaj parametr --file, aby oznaczyć nazwę pliku lokalnego:
openstack object save backup09 test.txt --file test32.txt
Aby usunąć, plik, użyj polecenia:
openstack object delete <container_name> <object_name>
Ustawianie metadanych
Metadane mogą być używane do oznaczania i kategoryzowania obiektów, aby później można było kategoryzować duże ilości danych. Jeśli tworzysz jakiś system przechowywania multimediów, możesz oznaczać obrazy, filmy, czysty tekst i pliki PDF w różny sposób. Można również dodawać datę utworzenia jako metatag.
Ogólne polecenie dodawania metadanych do obiektu jest następujące:
openstack object set --property <key=value> <container_name> <object_name>
A oto bardziej konkretny przykład
przesyłania obrazu do kontenera i
kategoryzownia go jako obraz za pomocą metatagu:
# First create a new container, solar_system, to contain images of solar system
openstack container create solar_system
# Upload an image and add metadata to categorize it
openstack object create solar_system image1.jpg
# Tag it as an image and with the date of creation
openstack object set \
--property type=image \
--property created=2024-06-12 solar_system image1.jpg
Jeśli chcesz śledzić wersje pliku, możesz oznaczyć obraz w następujący sposób:
openstack object set \
--property version=2 \
--property modified=2024-06-12 solar_system image1.jpg
Co można zrobić dalej?
Możesz łączyć standardowe polecenia bash z podstawowymi poleceniami dla obiektów i kontenerów, aby
tworzyć kopie zapasowe,
kopiować i/lub migrować dane do innych kontenerów,
wyszukiwać je przy użyciu wprowadzonych wcześniej metadanych
i tak dalej.
Ten typ programowania w języku powłoki bash jest jednak poza zakresem tego artykułu.
Pomocne mogą się okazać następujące artykuły: