Skip to main content
  • »
  • OPENSTACK CLI »
  • Jak uzyskać dostęp do object storage za pomocą OpenStack CLI na NSIS

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
../_images/openstack_container_create_help.png

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:

../_images/combination_swift_commands.png

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:

../_images/object_create_container_name.png

Wylistujmy zawartość kontenera i sprawdźmy, czy znajduje się tam plik test.txt:

../_images/object_list_backup09.png

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:

Jak uzyskać dostęp do object storage z NSIS za pomocą boto3

Jak uzyskać dostęp do object storage z NSIS za pomocą s3cmd