cs:navody:object_storage:cesnet_s3:start

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
cs:navody:object_storage:cesnet_s3:start [23.06.2020 13:10]
Lukáš Strnad
cs:navody:object_storage:cesnet_s3:start [24.02.2025 20:12] (aktuální)
Milan Daneček
Řádek 1: Řádek 1:
-===== Připojení a konfigurace CESNET s3 ===== 
  
-{{anchor:​aws_cli}} +====== Připojení a konfigurace CESNET S3 ======
-==== Linux klient AWS CLI ====+
  
-Klient AWS CLI je standardní nástroj podporující práci ​es s3 rozhraníKlient je napsaný v pythonu, je tedy nezbytné mít nainstalovaný **python alespoň ve verzi 3.3+**Dle oficiální dokumentace je sice podporován i python 2.6.5+, nicméně můžete narazit na problémy s kompatibilitou s ohledem na námi provozovanou verzi Cephu.+<note important>​ 
 +Nová aktualizovaná dokumentace ​je připravena na našem [[https://​docs.du.cesnet.cz/​en/​docs/​object-storage-s3/​s3-service|novém dokumentačním webu.]] 
 +</​note>​
  
-<note important>​Pokud provozujete CENTOS 7, pravděpodobně budete řešit problém s verzí pythonu, která je ve výchozím stavu 2.7.5. V takovém případě doporučujeme buď upgrade na CENTOS 8, kde je již implementovan python 3+, případně použít SCL (Software Collection environment).</​note>​ 
  
-===Instalace AWS CLI a jeho konfigurace=== 
-Nejprve nainstalujeme AWS CLI klienta pomoci pip, kde **<​nowiki>​--upgrade</​nowiki>​** provede upgrade všech již nainstalovaných součástí;​ **<​nowiki>​--user</​nowiki>​** použije podadresář aktuálního uživatele, pod kterým spouštíte pip, aby nedošlo k modifikaci systémových knihoven. 
  
-<​code>​$ pip3.6 install awscli --upgrade --user</​code>​ 
  
-Dále provedeme upgrade na nejnovější verzi AWS CLI +CESNET S3 používá konvenci doména.cz/tenant:​bucket,​ kde tenant název VO "​vo_name"​ a doména s3.clX.du.cesnet.cz , což je rozdíl oproti standartnímu AWS S3 kde se používá formát bucket.doména.comPokud tenant neuvedete, mělo by dojít k automatickému rozponání podle přístupových klíčů (access_key a secret_key) a tudíž dostačuje formát s3.clX.du.cesnet.cz/bucket
-<​code>​$ aws --version +
-aws-cli/1.16.239 Python/3.6.3 Linux/3.10.0-957.27.2.el7.x86_64 botocore/1.12.229</code>+
  
-<​code>​$ pip3.6 install --upgrade --user awscli</​code>​+Pokud vámi vybraný klient bere S3 endpoint jako čistý AWS, je nutné přepnout na obecný S3 endpoint, který je z velké části kompatibilní z pohledu protokoluVětšina nástrojů umí automaticky zpracovat oba formáty, u některých je však potřeba ho explicitně specifikovat."​
  
-<​note>​Pokud potřebujete nainstalovat AWS CLI ve virtuálním prostředí můžete využít [[https://​docs.aws.amazon.com/​cli/​latest/​userguide/​install-virtualenv.html|tento návod]].</​note>​ 
  
 +<note important>​
 +Návody se odkazují na access_key, secret_key a URL k S3 endpointu. **Přístupové údaje si jednoduše vygenerujte pomocí [[cs:​navody:​object_storage:​gatekeeper:​start|aplikace Gatekeeper]].**
 +URL adresa S3 endpointu je ve tvaru "​https://​s3.clX.du.cesnet.cz"​ a je to název objektového S3 úložiště.
 +   cl1 - https://​s3.cl1.du.cesnet.cz
 +   cl2 - https://​s3.cl2.du.cesnet.cz
 +   cl3 - https://​s3.cl3.du.cesnet.cz
 +   cl4 - https://​s3.cl4.du.cesnet.cz
 +   cl5 - https://​s3.cl5.du.cesnet.cz
 +</​note>​
  
-<​note ​tip>Pro konfiguraci AWS CLI doporučujeme ​použít volbu **<​nowiki>​--profile<​/nowiki>​**která vám umožní definovat více uživatelských profilů, například pro vás a servisní identitu. Můžete však použít rovněž výchozí nastavení (bez volby **<​nowiki>​--profile</​nowiki>​**). Všechny ​íkazy pak budou shodné, jen nebudou obsahovat volbu **<​nowiki>​--profile</​nowiki>​** a použije se výchozí nastavení.</​note>​+<​note>​Jméno bucketu musí být unikátní a mělo by obsahovat pouze malá písmena, čísla a pomlčky a tečky. Název bucketu musí začínat pouze písmenem nebo číslem a nesmí obsahovat tečky vedle pomlček nebo více teček. Dále doporučujeme ​nepoužívat „/“ v názvuprotože by to znemožnilo jeho použití es API.</​note>​
  
-Dále provedeme konfiguraci AWS CLINásledující přiklady využívají konfiguraci s použitím volby **<​nowiki>​--profile</​nowiki>​**.+===== Osobní S3 účet ===== 
 +Osobní S3 účet je speciální služba poskytovaná v rámci S3Jedná se o osobní prostor pro ukládání dat, která nepotřebujete dále sdílet. Pro získání osobního prostoru stačí postupovat podle [[cs:​navody:​object_storage:​osobni_s3:​start|tohoto návodu]]
  
-<​code>​$ aws configure --profile pepa_servis +====== Linux klienti ====== 
-AWS Access Key ID [None]AKIAI44QH8DHBEXAMPLE +{{anchor:aws_cli}} 
-AWS Secret Access Key [None]je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY +===== AWS-CLI ===== 
-Default region name [None]+[[https://aws.amazon.com/​cli/​|AWS CLI]] - Amazon Web Services Command Line Interface - je standardní nástroj podporující práci přes s3 rozhraní. Za pomoci jediného nástroje můžete spravovat vaše data a konfiguraci S3. Vše můžete ovládat z příkazového řádku a automatizovat pomocí skriptů. [[cs:navody:​object_storage:​awscli:​start|Návod pro AWS CLI]]
-Default output format [None]: text</​code>​+
  
-//AWS Access Key ID// - access key, který jste si vygenerovali \\ +\\
-//Secret Access Key// - secret key, který jste si vygenerovali \\ +
-//Default region name// - prefix pro servery, na které budete zasílat vaše požadavky, **Zde ponecháme nevyplněné!** \\ +
-//Default output format// - výstupní formát dat (json, text, table) ​\\+
  
-<note important>​Pro správnou funkčnost je nezbytné překonfigurovat **endpoint-url** na servery CESNETu. K tomu budeme potřebovat nainstalovat nástroj [[https://​github.com/​wbingli/​awscli-plugin-endpoint|awscli-plugin-endpoint]],​ viz návod níže.</​note>​+===== S3cmd =====
  
-== Instalace awscli-plugin-endpointu == +[[https://​s3tools.org/​download|S3cmd]] je bezplatný nástroj příkazového řádku a klient pro nahrávání,​ načítání a správu dat v S3 cloudových úložišťíchS3cmd je psán v PythonuJe to open source projekt dostupný pod GNU Public License v2 (GPLv2) a je zdarma pro komerční i soukromé použití. [[cs:​navody:​object_storage:​s3cmd:​start|Návod pro S3cmd]]
-Nejdříve provedeme instalaci pomocí pip. +
-<​code>​pip3.6 install awscli-plugin-endpoint --user</​code>​+
  
-Případně můžete nainstalovat nejnovější verzi z Github repozitáře 
-<​code>​pip3.6 install git+https://​github.com/​wbingli/​awscli-plugin-endpoint.git --user</​code>​ 
  
-Pro použití nainstalovaného pluginu jej musíme nejdříve zapnout. +\\
-<​code>​aws configure set plugins.endpoint awscli_plugin_endpoint</​code>​+
  
-Následně pomocí pluginu přidáme adresu CESNET s3 endpointu. +===== Rclone ​synchronizace dat ===== 
-<​code>​aws configure ​--profile pepa_servis set s3.endpoint_url ​https://s3.cl1.du.cesnet.cz</code>+Nástroj [[https://rclone.org/​downloads/​|Rclone]] je vhodný pro synchronizaci dat, migrování souborů mezi více S3 endpointy, a to i různých poskytovatelů atdZachovává časová razítka a kontroluje kontrolní součtyJe napsán v programovacím jazyku Go a je dostupný pro GNU/Linux, Windows, macOS, BSD a SolarisV tomto návodu budeme diskutovat použití primárně pro GNU/Linux systémy. ​ [[cs:​navody:​object_storage:​rclone:​start|Návod pro Rclone]]
  
-še uvedené ​íkazy by měly provést změny ve vašem ​configu, viz níže.+===== s5cmd pro velmi rychlé přenosy ===== 
 +Pokud disponujete připojením rychlejším než 1-2Gbps a chcete ​enos optimalizovat pro dosažení maximální rychlosti, použijte nástroj s5cmd. Nástroj je dostupný ve formě předkompilovaných binárek pro Windows, Linux a macOS. Dále je dostupný ​ve formě kódu nebo docker image. Výběr záleží na vašem ​systému a požadovaném použiti. Kompletní přehled najdete na [[https://​github.com/​peak/​s5cmd|githubu projektu]]. 
 +[[cs:​navody:​object_storage:​s5cmd:​start|Návod pro s5cmd]]
  
-<​code>​[user@distro ~]$ cat .aws/​config ​+===== VEEAM =====
  
-[profile pepa_servis] +[[https://www.veeam.com/​cz/​vm-backup-recovery-replication-software.html?​ad=menu-products|VEEAM]] je software pro zálohování,​ replikaci, obnovení po havárii a další.  
-output = text + [[cs:​navody:​object_storage:​cesnet_s3:​veeam_pripojeni:​start|Návod na připojení S3 úložiště přes VEEAM]].
-s3 = +
-    endpoint_url = https://s3.cl1.du.cesnet.cz +
-[plugins] +
-endpoint = awscli_plugin_endpoint +
-</​code>​+
  
-Nyní můžeme ověřit funkčnost připojení a zkusit si například vylistovat existující buckety. +Využití WORM modelu[[cs:navody:object_storage:cesnet_s3:veeam_worm:start|WORM model VEEAM]] 
-<​code>​ +====== Windows klienti ======
-$ aws s3 --profile pepa_servis ls +
-2019-09-11 17:06:53 test-win +
-2019-09-11 14:45:45 large-files +
-2019-09-11 14:48:21 small-files +
-</​code>​+
  
-==Ovládání AWS CLI - high-level (s3)==  + Na výběr je více možností, zde nabízíme na výběr několika otestovaných free klientů pro S3.
-**Pro zobrazení plné nápovědy (dostupných příkazů) můžeme využít help**+
  
-<​code>​$ aws s3 help</​code>​ 
  
 +===== WinSCP =====
  
-<hidden **Práce s buckety**>​ +[[https://​winscp.net/​eng/​index.php|WinSCP]] WinSCP je oblíbený SFTP klient ​FTP klient pro Microsoft Windows! Přenos souborů mezi místním počítačem vzdálenými servery pomocí protokolů pro přenos souborů FTP, FTPS, SCP, SFTP, WebDAV ​nebo **S3**[[cs:​navody:​object_storage:​cesnet_s3:​winscp:​start|Návod pro WinSCP]]
-<​note>​Jméno bucketu musí být unikátní ​mělo by obsahovat pouze malá a velká písmena, ​čísla a pomlčky tečky. Název bucketu musí začínat pouze písmenem ​nebo číslem a nesmí obsahovat tečky vedle pomlček nebo více teček.</​note>​+
  
-**Výroba bucketu** \\ 
-<​code>​$ aws s3 --profile pepa_servis mb s3://​test1</​code>​ 
-**Vylistování bucketů** \\ 
-<​code>​$ aws s3 --profile pepa_servis ls 
-2019-09-18 13:30:17 test1</​code>​ 
-**Odstranění bucketu** \\ 
-<​code>​aws s3 --profile pepa_servis rb s3://​test1</​code>​ 
-</​hidden>​ \\ 
  
  
-<hidden **Práce se soubory a adresáři**>​ +===== CloudBerry Explorer for Amazon S3 =====
-**Soubory** \\ +
-Upload souboru \\ +
-<​code>​$ aws s3 --profile pepa_servis cp file_1.tar s3://​test1 +
-upload: ./​file_1.tar to s3://​test1/​file_1.tar</​code>​+
  
-Download souboru \\ +[[https://​cloudberry-explorer-for-amazon-s3.en.softonic.com|CloudBerry Explorer]] je intuitivní průzkumník souborů, který vám pomůže spravovat váš účet S3, jako by to byla ještě jedna složka na vašem místním disku. Program má rozhraní s dvojitým podoknem a funguje jako klient FTP, přičemž každé okno je věnováno jedné složce. Tato umístění nejsou pevná a lze je přepnout tak, aby vyhovovala vašemu aktuálnímu úkolumístní počítač a vzdálený server S3, dvě místní složky nebo dokonce dva účty S3[[cs:navody:object_storage:​cloudbr:​start|Návod pro CloudBerry]]
-<​code>​$ aws s3 --profile pepa_servis cp s3://​test1/​file_1.tar downloads/​ +
-downloads3://​test1/​file1.tar to downloads/​file1.tar +
-</​code>​+
  
-Smazání souboru \\ +===== S3 Browser =====
-<​code>​$ aws s3 --profile pepa_servis rm s3://​test1/​file_1.tar  +
-delete: s3://​test1/​file1.tar +
-</​code>​+
  
-**Adresáře** \\ +[[https://s3browser.com/|S3 Browser]] je freewarový výkonný a snadno použitelný klient Windows pro S3 úložiště[[cs:navody:​object_storage:​s3browser:​start|Návod pro S3 Browser]]
-Upload adresáře \\ +
-<​note>​Pokud uvedete na konci zdrojového adresáře lomítko "/" příkaz se vztahuje pouze k obsahu zdrojového adresářeBez lomítka se příkaz vztahuje ​na adresář samotný.</​note>​ +
-<​code>​$ aws s3 --profile pepa_servis cp my_dir s3://​test1/​test_dir1 --recursive</​code>​+
  
-Download adresáře \\ 
-<​code>​$ aws s3 --profile pepa_servis cp s3://​test1/​test_dir1 downloads/ --recursive</​code>​ 
  
-Smazání adresáře \\ 
-<​code>​$ aws s3 --profile pepa_servis rm s3://​test1/​test_dir1 --recursive</​code>​ 
  
-**Synchronizace adresářů** \\ +===== CyberDuck =====
-Synchronizace adresáře na úložiště pomocí s3 \\ +
-<​code>​$ aws s3 --profile pepa_servis sync downloads s3://​test1/​my_sync/</​code>​+
  
-Synchronizace adresáře úložiště ​pomocí s3 na lokální PC \\ +[[https://​cyberduck.io/​s3/​|CyberDuck]] je všestranný prohlížeč S3 s příjemným rozhraním. Není to ale jen průzkumník,​ ve skutečnosti je CyberDuck bezplatný server, který funguje také jako prohlížeč cloudového ​úložiště ​a podporuje protokoly jako FTP, SFTP, WebDAV, OpenStack, OneDrive, Google Drive, Dropbox, ajPodporuje rychlé nahrávání a stahování souborů a umožňuje pracovat se soubory bez downloadu.[[cs:​navody:​object_storage:​cyberduck:​start|Návod pro CyberDuck]]
-<​code>​$ aws s3 --profile pepa_servis sync s3://​test1/​my_sync/ ​./​restored/</​code>​+
  
-</​hidden>​ \\ 
  
-/* 
-[[https://​docs.aws.amazon.com/​cli/​latest/​userguide/​cli-services-s3-commands.html|Amazon high-level S3]] 
-*/ 
  
 +===== Mountain Duck =====
  
-==Ovládání AWS CLI - api-level ​(s3api)==  +[[https://​mountainduck.io/​|Mountain Duck]] je rozšíření Cyberducku pro montování svazků do průzkumníku souborů, kdy pracujte s daty jako na lokálním disku. Mountain Duck vám umožňuje připojit cloudové úložiště jako disk ve Finderu ​(macOSa Průzkumníku souborů (Windows).
-<​code>​$ aws s3api help</​code>​+
  
-[[https://​docs.aws.amazon.com/​cli/​latest/​userguide/​cli-services-s3-apicommands.html|Amazon api-level S3]] 
  
-/* 
-<​code></​code>​ 
  
-*/ 
  
-<​note>​ V případě rozhodnutí se používání S3 verzování objektů je   ​[[:​cs:​navody:​object_storage:​cesnet_s3_versioning|návod zde]].</​note>​ +====== Pokročilé funkcionality S3 ======
-==== Linux klient s3cmd ====+
  
-[[https://s3tools.org/download|S3cmd]] je bezplatný nástroj příkazového řádku a klient pro nahrávání,​ načítání a správu dat v s3 cloudových úložišťíchS3cmd je psán v Pythonu. Je to open source projekt dostupný pod GNU Public License v2 (GPLv2) a je zdarma pro komerční i soukromé použití. +<note important>​ 
- +Nová aktualizovaná dokumentace je připravena na našem ​[[https://docs.du.cesnet.cz/en/​docs/​object-storage-s3/​s3-features|novém dokumentačním webu.]]
-<note important>​Jako preferovaný nástroj doporučujeme spíše [[cs:​navody:​object_storage:​cesnet_s3:​start#​aws_cli|AWS CLI]]. \\ +
-U s3cmd jsme v některých případech zaznamenali problémy. Kupříkladu jména backetů nesmí začínat číslem a velká písmena.+
 </​note>​ </​note>​
  
-=== Instalace s3cmd === +===== Sdílení S3 objektu ​=====
- +
-s3cmd je k dispozici ve výchozích repozitářích rpm pro systémy CentOS, RHEL a Ubuntu. Nainstalujte jej pomocí jednoduchého spuštění následujících příkazů ve vašem systému. +
- +
-** +
-Na CentOS/​RHEL:​** +
- +
-<​code>​$ sudo yum install s3cmd </​code>​ +
-** +
-Na Ubuntu/​Debian:​** +
- +
-<​code>​$ sudo apt install s3cmd </​code>​ +
- +
- +
-=== Konfigurace s3cmd  ​=== +
- +
-Pro konfiguraci s3cmd potřebujete **Access Key** a **Secret Key**, který jste si vygenerovali. Po získání klíčů je vložte do konfiguračního souboru **/​home/​user/​.s3cfg**. +
- +
-  [default] +
-  host_base = https://​s3.cl1.du.cesnet.cz +
-  use_https = True +
-  access_key = xxxxxxxxxxxxxxxxxxxxxx +
-  secret_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +
-  host_bucket = s3.cl1.du.cesnet.cz +
-  gpg_command = /​​usr/​​bin/​​gpg +
-  gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s +
-  gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s +
-  gpg_passphrase = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +
- +
- +
-=== Použití s3cmd příkazů === +
- +
-s3 příkazy podporují běžné operace s buckety, například vytváření,​ listování a mazání. +
- +
- +
- +
- +
- +
-<hidden **Práce s buckety**>​ +
- +
- +
-** Vylistování všech s3 bucketů** +
- +
-<​code>​$ s3cmd ls </​code>​ +
- +
-** Výroba nového s3 bucketu** +
- +
-<​code>​$ s3cmd mb s3://​newbucket </​code>​ +
- +
- +
-** Odstranění s3 bucketu** +
- +
-<​code>​$ s3cmd rb s3://​newbucket </​code>​ +
-Bucket jde odstranit pouze prázdný! \\ \\ +
- +
- +
-</​hidden>​ +
- +
-\\ +
- +
-<hidden **Práce se soubory a adresáři** > +
- +
- +
-** Vylistování obsahu s3 bucketu** +
- +
-<​code>​$ s3cmd ls s3://​newbucket/​ </​code>​ +
- +
-** Nahrávání dat do s3 bucketu** +
- +
-Upload souborů +
-<​code>​$ s3cmd put file.txt s3://​newbucket/​ </​code>​ +
- +
-Upload zašifrovaných souborů  +
-  $ s3cmd put -e file.txt s3://​​newbucket/​​ +
- +
- +
-Upload složek +
-<​code>​$ s3cmd put -r directory s3://​newbucket/​ </​code>​ +
-Ujistěte se, že nepřidáváte koncové lomítko v adresáři (např .: directory/​),​ jinak nahraje pouze obsah adresáře. \\ \\ +
- +
  
-** Stahování souboru z s3 bucketu**+[[cs:​navody:​object_storage:​cesnet_s3_url_share|Návod pro sdílení S3 objektu pomocí (presigned) adresy URL]]
  
-<​code>​$ s3cmd get s3://​newbucket/​file.txt </​code>​+===== S3 verzování objektů =====
  
-** Odstranění dat z s3 bucketu**+Pomocí S3 verzování můžete ponechat více verzí objektu v jednom ​bucketu. Umožní vám to obnovit objekty, které byly náhodně odstraněny nebo přepsány. [[cs:​navody:​object_storage:​cesnet_s3_versioning|Návod pro verzování S3 objektů]]
  
-<​code>​$ s3cmd del s3://​newbucket/​file.txt </​code>​ 
-<​code>​$ s3cmd del s3://​newbucket/​directory </​code>​ 
  
-** Synchronizování dat do s3 bucketu** 
  
-<​code>​$ s3cmd sync /​local/​path/​ s3://​newbucket/​backup/​ </​code>​+===== Sdílení bucketů v rámci tenantu =====
  
-** Synchronizování dat z s3 bucketu**+[[:​cs:​navody:​object_storage:​cesnet_s3_share_bucket|Návod pro sdílení S3 objektu/bucketu ​v rámci společného tenantu]].
  
-<​code>​$ s3cmd sync s3://​newbucket/​backup/​ ~/restore/ </​code>​ 
  
  
 +====== Často kladené otázky pro S3 ======
  
-</​hidden>​ \\+=== Multipart nahrávání === 
 +__Popis problému:​__ Nemohu nahrát soubor větší než 5GB. Dostávám chybu "our proposed upload exceeds the maximum allowed object size".
  
 +__Řešení problému:​__ Řešením je použití tzv. multipartového nahrávání. Multipart nahrávání umožňuje nahrát jeden objekt jako sadu souvisejících částí. Po nahrání všech částí vašeho objektu Ceph prezentuje data jako jeden objekt. Pomocí této funkce můžete vytvářet paralelní nahrávání,​ pozastavit a obnovit nahrávání objektu a zahájit nahrávání dříve, než budete znát celkovou velikost objektu. Jednotlivé objekty mohou mít velikost od minimálních 0B do typicky 5GB, ale tato hodnota se může lišit dle použitého klienta. Největší objekt, který lze nahrát v rámci jedné PUT operace je typicky 5 GB. Obecně u objektů větších než 100 MB byste měli zvážit použití funkce multipart nahrávání.
  
Poslední úprava:: 23.06.2020 13:10