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 [09.10.2019 12:32]
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 ===== 
  
 +====== Připojení a konfigurace CESNET S3 ======
  
-==== Linux klient s3cmd ====+<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>​
  
-[[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šťích. S3cmd 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í. 
  
-=== Instalace s3cmd === 
  
-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. 
  
-** +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.com. Pokud 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
-Na CentOS/RHEL:**+
  
-<​code>​$ sudo yum install s3cmd </​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 protokolu. Většina nástrojů umí automaticky zpracovat oba formáty, u některých je však potřeba ho explicitně specifikovat."​
-** +
-Na Ubuntu/​Debian:​**+
  
-<​code>​$ sudo apt install s3cmd </​code>​ 
  
 +<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>​
  
-=== Konfigurace s3cmd  ===+<​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ázvu, protože by to znemožnilo jeho použití přes API.</​note>​
  
-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**. +===== Osobní S3 účet ===== 
- +Osobní S3 účet je speciální služba poskytovaná v rámci ​S3. Jedná se o osobní prostor pro ukládání dat, která nepotřebujete dále sdíletPro získání osobního prostoru stačí postupovat podle [[cs:navody:object_storage:osobni_s3:start|tohoto návodu]]. 
-  [default] +
-  host_base ​https://​s3.cl1.du.cesnet.cz +
-  use_https ​True +
-  bucket_location ​cze +
-  access_key ​xxxxxxxxxxxxxxxxxxxxxx +
-  secret_key ​xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +
-  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 +
-   +
-**Alternativně lze konfigurační soubor získat použitím interaktivního průvodce:​** +
- +
- +
- +
-<hidden **s3cmd --configure**>​  +
-   +
-  \\ +
-   +
-  $ s3cmd --configure +
-   +
-  Enter new values or accept defaults in brackets with Enter. +
-  Refer to user manual for detailed description of all options. +
-  +
-  Access key and Secret key are your identifiers for Amazon ​S3. Leave them empty for using the env variables. +
-  Access Key: xxxxxxxxxxxxxxxxxxxxxx +
-  Secret Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +
-  Default Region ​[US]: cze +
-  S3 Endpoint ​[s3.amazonaws.com]:​ s3.cl1.du.cesnet.cz +
-  DNS-style bucket+hostname:​port template for accessing a bucket [%(bucket)s.s3.amazonaws.com]​ +
-  Encryption passwordxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +
-  Path to GPG program [/​​usr/​​bin/​​gpg]:​ +
-  Use HTTPS protocol [Yes]+
-  Test access with supplied credentials?​​ [Y/n] y +
-  Save settings? [y/N] y +
-  Configuration saved to '​​~/​​.s3cfg'​​ +
- +
-</​hidden>​+
  
 +====== Linux klienti ======
 +{{anchor:​aws_cli}}
 +===== AWS-CLI =====
 +[[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]]
  
 \\ \\
  
 +===== S3cmd =====
  
-=== Použití s3cmd příkazů ===+[[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šťích. S3cmd 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í. [[cs:​navody:​object_storage:​s3cmd:​start|Návod pro S3cmd]]
  
-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** > +===== Rclone - synchronizace dat ===== 
- +Nástroj [[https://rclone.org/downloads/|Rclone]] je vhodný pro synchronizaci ​dat, migrování ​souborů ​mezi více S3 endpointya to 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, ​WindowsmacOSBSD a Solaris. V tomto návodu budeme diskutovat použití primárně pro GNU/Linux systémy ​[[cs:​navody:​object_storage:​rclone:​start|Návod pro Rclone]]
- +
-** 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ář(např ​.: directory/​),​ jinak nahraje pouze obsah adresáře\\ \\ +
- +
- +
- +
-** Stahování souboru z s3 bucketu** +
- +
-<​code>​$ s3cmd get s3://​newbucket/​file.txt </​code>​ +
- +
-** Odstranění dat z s3 bucketu** +
- +
-<​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>​ +
- +
-** Synchronizování dat z s3 bucketu** +
- +
-<​code>​$ s3cmd sync s3://​newbucket/​backup/​ ~/restore/ </​code>​ +
- +
- +
- +
-</​hidden>​ \\ +
- +
- +
-==== Linux klient AWS CLI ==== +
- +
-Klient AWS CLI je standardní nástroj podporující práci přes s3 rozhraní. Klient je napsaný v pythonuje 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>​Pokud provozujete CENTOS 7pravdě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 +===== s5cmd pro velmi rychlé přenosy ===== 
-<​code>​$ aws --version +Pokud disponujete připojením rychlejším než 1-2Gbps a chcete přenos optimalizovat pro dosažení maximální rychlosti, použijte nástroj s5cmdNástroj je dostupný ve formě předkompilovaných binárek pro Windows, Linux a macOSDále je dostupný ve formě kódu nebo docker imageVýběr záleží na vašem systému a požadovaném použitiKompletní přehled najdete na [[https://github.com/peak/​s5cmd|githubu projektu]]. 
-aws-cli/1.16.239 Python/3.6.3 Linux/3.10.0-957.27.2.el7.x86_64 botocore/1.12.229</​code>​+[[cs:​navody:​object_storage:​s5cmd:​start|Návod pro s5cmd]]
  
-<​code>​$ pip3.6 install --upgrade --user awscli</​code>​+===== VEEAM =====
  
-<​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>​+[[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ší.  
 + ​[[cs:​navody:​object_storage:​cesnet_s3:​veeam_pripojeni:​start|Návod na připojení S3 úložiště přes VEEAM]].
  
 +Využití WORM modelu: [[cs:​navody:​object_storage:​cesnet_s3:​veeam_worm:​start|WORM model VEEAM]]
 +====== Windows klienti ======
  
-Dále musíme provést konfiguraci AWS CLI. Pro konfiguraci doporučujeme používat volbu **<​nowiki>​--profile</​nowiki>​**která vám umožní definovat více uživatelských profilů, například ​pro vás a servisní identitu.+ 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.
  
-<​code>​$ aws configure --profile pepa_servis 
-AWS Access Key ID [None]: AKIAI44QH8DHBEXAMPLE 
-AWS Secret Access Key [None]: je7MtGbClwBF/​2Zp9Utk/​h3yCo8nvbEXAMPLEKEY 
-Default region name [None]: 
-Default output format [None]: text</​code>​ 
  
-//AWS Access Key ID// - access key, který jste si vygenerovali \\ +===== WinSCP =====
-//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>​+[[https://winscp.net/eng/index.php|WinSCP]] WinSCP je oblíbený SFTP klient a FTP klient pro Microsoft Windows! Přenos souborů mezi místním počítačem a vzdálenými servery pomocí protokolů pro přenos souborů FTPFTPS, SCP, SFTP, WebDAV nebo **S3**[[cs:​navody:​object_storage:​cesnet_s3:​winscp:​start|Návod pro WinSCP]]
  
-== Instalace awscli-plugin-endpointu == 
-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. +===== CloudBerry Explorer for Amazon S3 =====
-<​code>​aws configure set plugins.endpoint awscli_plugin_endpoint</​code>​+
  
-Následně pomocí pluginu přidáme adresu CESNET s3 endpointu. +[[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 diskuProgram 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 úkolu: mí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 configure --profile pepa_servis set s3.endpoint_url ​https://s3.cl1.du.cesnet.cz</​code>​+
  
-Výše uvedené příkazy by měly provést změny ve vašem configu, viz níže.+===== S3 Browser =====
  
-<​code>​[user@distro ~]$ cat .aws/config ​+[[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]]
  
-[profile pepa_servis] 
-output = text 
-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. 
-<​code>​ 
-$ 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)==  +===== CyberDuck =====
-**Pro zobrazení plné nápovědy (dostupných příkazů) můžeme využít help**+
  
-<​code>​$ aws s3 help</code>+[[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, aj. Podporuje 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]]
  
  
-<hidden **Práce s buckety**>​ 
-<​note>​Jméno bucketu musí být unikátní a mělo by obsahovat pouze malá a velká 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.</​note>​ 
  
-**Výroba bucketu** \\ +===== Mountain Duck =====
-<​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>​ \\+
  
 +[[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 (macOS) a Průzkumníku souborů (Windows).
  
-<hidden **Práce se soubory a adresáři**>​ 
-**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 \\ 
-<​code>​$ aws s3 --profile pepa_servis cp s3://​test1/​file_1.tar downloads/ 
-download: s3://​test1/​file1.tar to downloads/​file1.tar 
-</​code>​ 
  
-Smazání souboru \\ 
-<​code>​$ aws s3 --profile pepa_servis rm s3://​test1/​file_1.tar ​ 
-delete: s3://​test1/​file1.tar 
-</​code>​ 
  
-**Adresáře** \\ +====== Pokročilé funkcionality S3 ======
-Upload adresáře \\ +
-<​note>​Pokud uvedete na konci zdrojového adresáře lomítko "/"​ příkaz se vztahuje pouze k obsahu zdrojového adresáře. Bez lomítka se příkaz vztahuje i na adresář samotný.</​note>​ +
-<​code>​$ aws s3 --profile pepa_servis cp my_dir s3://​test1/​test_dir1 --recursive</​code>​+
  
-Download adresáře \\ +<note important> 
-<code>$ aws s3 --profile pepa_servis cp s3://test1/test_dir1 downloads/ --recursive</code>+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>
  
-Smazání adresáře \\ +===== Sdílení S3 objektu =====
-<​code>​$ aws s3 --profile pepa_servis rm s3://​test1/​test_dir1 --recursive</​code>​+
  
-**Synchronizace adresářů** \\ +[[cs:navody:​object_storage:​cesnet_s3_url_share|Návod pro sdílení S3 objektu pomocí (presigned) adresy URL]]
-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 z úložiště pomocí s3 na lokální PC \\ +===== S3 verzování objektů =====
-<​code>​$ aws s3 --profile pepa_servis sync s3://​test1/​my_sync/​ ./​restored/</​code>​+
  
-</​hidden>​ \\+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ů]]
  
-/* 
-[[https://​docs.aws.amazon.com/​cli/​latest/​userguide/​cli-services-s3-commands.html|Amazon high-level S3]] 
-*/ 
  
  
-==Ovládání AWS CLI - api-level (s3api)==  +===== Sdílení bucketů v rámci tenantu =====
-<​code>​$ aws s3api help</​code>​+
  
-[[https://​docs.aws.amazon.com/​cli/​latest/​userguide/​cli-services-s3-apicommands.html|Amazon api-level ​S3]]+[[:cs:​navody:​object_storage:​cesnet_s3_share_bucket|Návod pro sdílení ​S3 objektu/​bucketu v rámci společného tenantu]].
  
-/* 
-<​code></​code>​ 
  
-<​code></​code>​ 
  
-<​code></​code>​+====== Často kladené otázky pro S3 ======
  
-<​code></​code>​+=== 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".
  
-<​code></​code>​ +__Ř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:: 09.10.2019 12:32