From 20f7525c785e732d4149c2ee81b4d4c556bfa75a Mon Sep 17 00:00:00 2001 From: Mrinal Biswas Date: Wed, 14 Jan 2026 11:58:25 -0700 Subject: [PATCH 01/10] Adding documentation for Boreas --- docs/storage-systems/boreas/index.md | 172 ++++++++++++++++++ .../media/._boreas_globus_image1.png | Bin 0 -> 688 bytes .../media/._boreas_globus_image2.png | Bin 0 -> 688 bytes .../media/._boreas_globus_image3.png | Bin 0 -> 688 bytes .../media/._boreas_globus_image4.png | Bin 0 -> 893 bytes .../media/boreas_globus_image1.png | Bin 0 -> 376973 bytes .../media/boreas_globus_image2.png | Bin 0 -> 101046 bytes .../media/boreas_globus_image3.png | Bin 0 -> 91080 bytes .../media/boreas_globus_image4.png | Bin 0 -> 382292 bytes 9 files changed, 172 insertions(+) create mode 100644 docs/storage-systems/boreas/index.md create mode 100644 docs/storage-systems/boreas/log_using_globus/media/._boreas_globus_image1.png create mode 100644 docs/storage-systems/boreas/log_using_globus/media/._boreas_globus_image2.png create mode 100644 docs/storage-systems/boreas/log_using_globus/media/._boreas_globus_image3.png create mode 100644 docs/storage-systems/boreas/log_using_globus/media/._boreas_globus_image4.png create mode 100644 docs/storage-systems/boreas/log_using_globus/media/boreas_globus_image1.png create mode 100644 docs/storage-systems/boreas/log_using_globus/media/boreas_globus_image2.png create mode 100644 docs/storage-systems/boreas/log_using_globus/media/boreas_globus_image3.png create mode 100644 docs/storage-systems/boreas/log_using_globus/media/boreas_globus_image4.png diff --git a/docs/storage-systems/boreas/index.md b/docs/storage-systems/boreas/index.md new file mode 100644 index 00000000..a5f6e878 --- /dev/null +++ b/docs/storage-systems/boreas/index.md @@ -0,0 +1,172 @@ +# Boreas object storage system + +Boreas is an object storage service that provides S3-compatible access +backed by an IBM Storage Scale (GPFS) filesystem. It is designed to +support high-throughput data access for users and integrates +tightly with existing HPC infrastructure. + +Boreas, the CISL object storage disk system described here, is for +long-term data storage. Boreas is not available for university projects. + +## System overview +Architecture + +Boreas is implemented using IBM Cluster Export Services (CES) with NooBaa S3 services layered on top of a Storage Scale filesystem. + +Core Components + +Cluster Export Services (CES) + - CES provides the S3 protocol interface and connects directly to the underlying GPFS storage system. + +NooBaa S3 Services + - NooBaa services run on the CES nodes and process all S3 API requests. + +Clients and Applications +Users and applications access Boreas using standard S3 APIs. Client requests are distributed across CES nodes using DNS round-robin. + +## Data sharing +Boreas supports multiple access models for sharing S3 data, depending on security requirements and collaboration needs. + +Anonymous Object Access (Signed URLs) + + - Signed URLs allow users to grant temporary access to individual objects without requiring authentication. + - Users may upload or download objects using a time-limited signed URL. + - Access can be restricted by specifying an expiration date and time when the URL is created. + - No S3 account or Access/Secret key credentials are required to use a signed URL. + - Access is restricted to the UCAR VPN, with approved exceptions. + +This method is appropriate for short-term sharing of individual files with external collaborators or automated workflows. + +Identity-Based Bucket Policies + + - Identity-based policies allow controlled sharing of buckets with authenticated users. + - Users may grant read and/or write access to specific S3 users or to all authenticated users. + - All users accessing the bucket must have a valid S3 account. + - Access and Secret key credentials are required to authenticate and access shared data. + - Access is restricted to the UCAR VPN, with approved exceptions. + +This model is recommended for collaborative projects where persistent authenticated access is required. + +Resource-Based Bucket Policies (Anonymous Bucket Access) + + - Resource-based policies allow anonymous access to entire buckets when approved. + - Users may request that anonymous access be enabled for a bucket. + - No S3 account is required to access an anonymous bucket. + - Access and Secret key credentials are not required for read and list operations on anonymous buckets. + - Access is restricted to the UCAR VPN, with approved exceptions. + +This option is intended for controlled public distribution or broad internal sharing of datasets. + +## Choosing an Access Model +Anonymous Object Access (Signed URLs) + +Use this option when: + + - You need to share individual files temporarily with collaborators who do not have S3 accounts. + - Access should automatically expire after a defined time window. + - The data should not remain publicly accessible long term. + - You want minimal setup and no account provisioning. + +Typical use cases: + + - Sharing a single dataset or result file with an external collaborator. + - Automated workflows that require short-lived download or upload access. + - One-time data delivery. + +Not recommended for: + + - Long-term sharing. + - Large collections of files. + - Ongoing collaborative workflows. + +Identity-Based Bucket Policies + +Use this option when: + + - Multiple users need persistent read and/or write access to the same bucket. + - Users already have (or can request) S3 accounts and credentials. + - Access needs to be auditable and managed per user or group. + +Typical use cases: + + - Research teams sharing active project data. + - Collaborative model output generation and analysis. + - Controlled internal data distribution. + +Not recommended for: + + - External users without S3 accounts. + - Public or anonymous access requirements. + +- Data and metadata can be accessed either via a library (such as + Python's `boto3`) or a web browser (e.g. Globus) +- Accounts are identified by a key pair: access key and secret key, as + in these examples: + - **Access key:** `AK0IYXKCCIA63BMNCOUN` + - **Secret key:** `Joeke2uHHebQdKJBgTVUzp+j7uRDthPdIBl5YaLE` +- Accounts are associated with email, and each email address can have + only a single account with a single role. A person who needs two roles + must use two separate emails. +- Two roles exist: + - **Admin** – An admin can create buckets and users, set up read/write + access control for users, and do everything a user can do; owns data + created by users. + - **Users** – Users may access buckets and read or write data inside + buckets if the admin granted access. Users **cannot** create + buckets. + +## Policies + +- The system is not backed up. +- Support will be provided during business hours on business days. +- CISL will create only one admin account per lab. The admin will be + able to create accounts for other users. Because the secret key-based + logins do not expire, the admin will also delete accounts as + appropriate – for example, when a user leaves NSF NCAR. + +## Requesting account + +Contact CISL to request an account. You will be asked to: +- Specify how much disk space you need. +- Give a brief description (one sentence) of your intended use case. +- Acknowledge that you will be the admin and will manage buckets and + users. + +## Documentation and additional information + +This related page will help you get started as an object storage +admin: [Getting started with object storage admin account](./getting-started-with-an-object-storage-admin-account.md). + +- Additional documentation is attached below. + +- The system is accessible only via the NSF NCAR VPN. This is important + mostly for browser-based access to both the admin interface and to objects + in storage buckets with public read-access, since CISL anticipates that + server-based access will be from an internal server anyway. + +- The access and secret credentials will be sent via email. They are all + it takes a user to login (there is no UCAS, CIT, or Duo login). The NSF + NCAR username is irrelevant for this system. + +- The way that these credentials are (unlike username/password) seems to + nudge users towards nonoptimal patterns, such as hardcoding them into + the source code. Users are strongly advised to **NOT** do that. + Instead, use a separate file (outside of version control) similar to + the following and source that file before running your code. This + applies to both admin and user accounts. + +```bash +export AWS_ACCESS_KEY_ID='xxx' +export AWS_SECRET_ACCESS_KEY='yyy' +``` + +- Admins might want to create a separate user account for themselves + with just reading (and perhaps writing) capabilities and not admin + capabilities. This would require use of a different email address, + since the system does not allow reuse of existing emails. Admins + might use a personal email, or a (group) alias setup in PeopleDB. + +#### Additional Resources + +- [ActiveScale Object Storage S3 API Reference](ActiveScale_OS_S3_API_Reference.pdf) +- [ActiveScale Object Storage View User Guide](ActiveScale_OS_View_User_Guide.pdf) diff --git a/docs/storage-systems/boreas/log_using_globus/media/._boreas_globus_image1.png b/docs/storage-systems/boreas/log_using_globus/media/._boreas_globus_image1.png new file mode 100644 index 0000000000000000000000000000000000000000..8e970bdae1c1d42c4e71962eee043250a4dbed99 GIT binary patch literal 688 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFfi2tX&|3z1CT}l0R$73^@mgzfNf@)4%8>fz#xjyS6G@@l$ckNnU~6N z;z@cY$o%iu)x|(G!@<+0O|8c_yZzdfux`Iqndw)sD9J=pK~83IiGcwp2Sh6)Bh&~O z4KtAwrg8}*6Elmlg91cC*&zYOm>vOUDLZsPggAJ`$Vqox1Ojhs@R)|o50+1L3ClDJkFfi2tX&|3z1CT}l0R$73^@mgzfNf@)4%8>fz#xjyS6G@@l$ckNnU~7& z>`8hi$ovRDaWfFjaPYKgQ|s}~Zof7qtlMu@X8IK@N-~jDkds+lVqn0@0ny6H2sHvm z!%XCasa(Ry#LS}XklFy2QFcghfHEc>fHDd%fEgUTV)7bb76aT=RtO(X8p2GCEKbb< m24QA?9wCPa73v!pSQuHGS(=%rnxvXp2Nb22Wu}%}GXMZ?Hh#$f literal 0 HcmV?d00001 diff --git a/docs/storage-systems/boreas/log_using_globus/media/._boreas_globus_image3.png b/docs/storage-systems/boreas/log_using_globus/media/._boreas_globus_image3.png new file mode 100644 index 0000000000000000000000000000000000000000..a717fb8bb08c94d63b50c1c230686ddaafe70dc3 GIT binary patch literal 688 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFfi2tX&|3z1CT}l0R$73^@mgzfNf@)4%8>fz#xjyS6G@@l$ckNnU~7I z@iaXXWWMLz5HS$VaPYKgQ|s}~Zof7qtlMu@X8IK@N-~jDkds+lVqn0@0ny6H2sHvm z!%XCasa(Ry#LS}XQ2zleqwG+00m`T|fHGW~8361uei{G( literal 0 HcmV?d00001 diff --git a/docs/storage-systems/boreas/log_using_globus/media/._boreas_globus_image4.png b/docs/storage-systems/boreas/log_using_globus/media/._boreas_globus_image4.png new file mode 100644 index 0000000000000000000000000000000000000000..80a1516efb955df9d0635fe1edcb66b429a885aa GIT binary patch literal 893 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFfe-qX&|4u7Dyw20D_6iatsLxf{1{0 zFkS%SwWul>*dgK!Kr^J0^KPx6OG=AVQ&JL3Qk4UOA$k}e0BH{f27ZLP z+{EM@uq2ZPkkSGoB)Qa*M4p z!>tcRmwQfrQesX}YH|rw{|X>&%)p>Sr2de~0+?xWO3jH+$}1~N zPAo3ZFi*}gF)z)iDyd4#H>$`gssvlkoC2gI85l$nW)zkt7A5ADWagzZ_&-h01Su0z zt&ssMKX}@-srC3~w_lqQ*6p_{GyMt{C7DPn$jK}&F)-ldfM{i8gc<>(VJ33IR4!p; zVrEfxfVhG|*&)6GtVG#iIwbCt9Xcw&A{@M8@}PJG0=TKH5I&qVgqa#yoSFlShRpmt zLJkr7G}mBfeQ}NZ;+-{Ccgwe(P5RT$pntF6zREYd%(|~H4?OcU)oL!zXSKDI)tkkY zdhUwW&w|>W!A6s=Cfp02DfwV$+N65LpMBYSiqlsGX=<{WaGlXMz8^P@i9zUrF$??U z4c!4HF6@Vv2Afp)7Vst}3PijXWM9N3E9Gg~YGn0rQ;WD0PxrsphrEUQ1_l;J)@GJw T=BcKZ7S;hpsb!g|<<<-UDlE?> literal 0 HcmV?d00001 diff --git a/docs/storage-systems/boreas/log_using_globus/media/boreas_globus_image1.png b/docs/storage-systems/boreas/log_using_globus/media/boreas_globus_image1.png new file mode 100644 index 0000000000000000000000000000000000000000..e5ee53381614f8b3795a4334d19b15c7e708dca0 GIT binary patch literal 376973 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