Vpro-1085-R Course for RHV/Ovirt/OLVM Implementation & Administration Lab Exercises

Vpro-1085-R Course for RHV/Ovirt/OLVM Implementation & Administration Lab Exercises

<p></p><ul style="display: flex;"><li style="flex:1">vPro-1085-R - Storware vProtect - Implementation &amp; Administration Lab Exercises - v7.md </li><li style="flex:1">2/24/2021 </li></ul><p></p><p>vPro-1085-R Course for RHV/oVirt/OLVM Implementation &amp; Administration Lab Exercises </p><p>Credentials and access details </p><p></p><ul style="display: flex;"><li style="flex:1"><strong>Attribute </strong></li><li style="flex:1"><strong>Value </strong></li></ul><p></p><p>Download URL vProtect host </p><p><a href="/goto?url=http://10.40.0.253/lab-materials/vprotect/vpro-1085" target="_blank">http://10.40.0.253/lab-materials/vprotect/vpro-1085 </a>10.41.0.4 root </p><p>vProtect username vProtect password vProtect Web UI </p><p>St0rL@bs <a href="/goto?url=https://10.41.0.4" target="_blank">https://10.41.0.4 </a></p><p>vProtect Web UI username&nbsp;admin vProtect Web UI password&nbsp;vPr0tect RHV manager UI RHV user </p><p><a href="/goto?url=https://rhv-m.storware.lab/ovirt-engine" target="_blank">https://rhv-m.storware.lab/ovirt-engine </a></p><p>admin@internalin vProtect in UI, and adminin RHV manager UI <br>RHV password </p><p>St0rL@bs </p><p>Lab 1 - Demo of all-in-one installation </p><p>In this section we'll show you how to install vProtect components quickly using all-in-one setup scripts. Before installation steps please update and then reboot system </p><p>dnf -y update </p><p>Remote repository (option 1) </p><p>1. Export VPROTECT_REPOvariable to point to the repository URL </p><p><a href="/goto?url=http://10.40.0.253/vprotect/current/el8" target="_blank">export VPROTECT_REPO=http://10.40.0.253/vprotect/current/el8 </a></p><p>2. Execute script: </p><p>bash &lt; &lt;(curl -s http://repo.storware.eu/vprotect/vprotect-local-install.sh) </p><p>1 / 31 </p><ul style="display: flex;"><li style="flex:1">vPro-1085-R - Storware vProtect - Implementation &amp; Administration Lab Exercises - v7.md </li><li style="flex:1">2/24/2021 </li></ul><p></p><p>Lab 2 - Installation with RPMs </p><p>In this section you're going to install vProtect using RPMs - so that all necessary steps are done </p><p>Prerequisites </p><p>1. Access vlab.vpro.proxy.v3 2. Open putty on your vlab.vpro.proxy.v3 3. Connect to vProtect machine with a root access 4. Use your CentOS 8 minimal 5. Make sure your OS is up to date: </p><p>dnf -y update </p><p>If kernel is updated, then You need to reboot your operating system. <br>6. Install vProtect repository - create file /etc/yum.repos.d/vProtect.repo: </p><p># vProtect Enterprise backup solution for virtual environments repository [vprotect] name = vProtect <a href="/goto?url=http://10.40.0.253/vprotect/current/el8" target="_blank">baseurl = http://10.40.0.253/vprotect/current/el8 </a>gpgcheck=0 </p><p>7. Install MariaDB repository (vProtect Server host only) usually you generate .repo file at <a href="/goto?url=https://downloads.mariadb.org/mariadb/repositories" target="_blank">MariaDB download </a>site copy and paste generated repo file into /etc/yum.repos.d/MariaDB.repo, so it looks similar to this (if the repo file doesn't exist): </p><p># MariaDB 10.4 CentOS repository list - created 2020-05-11 09:20 UTC <a href="/goto?url=http://downloads.mariadb.org/mariadb/repositories/" target="_blank"># http://downloads.mariadb.org/mariadb/repositories/ </a>[mariadb] name = MariaDB <a href="/goto?url=http://DNF.mariadb.org/10.4/centos8-amd64" target="_blank">baseurl = http://DNF.mariadb.org/10.4/centos8-amd64 </a>module_hotfixes=1 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 </p><p>vProtect Server installation </p><p>2 / 31 </p><ul style="display: flex;"><li style="flex:1">vPro-1085-R - Storware vProtect - Implementation &amp; Administration Lab Exercises - v7.md </li><li style="flex:1">2/24/2021 </li></ul><p></p><p>vProtect consists of server (central management point with WebUI) and one or multiple nodes (which can be installed on the same host as server or on other machines). First step is always to install server. </p><p>1. Install vprotect-server using DNF: </p><p>dnf -y install vprotect-server </p><p>2. Setup DB for vProtect: </p><p>vprotect-server-configure </p><p>Please provide a MariaDB password <br>3. Start vProtect Server (it can take around a minute for server to be started): </p><p>systemctl start vprotect-server </p><p>4. Open 8181 port on your firewall. Here is example: </p><p>firewall-cmd --add-port=8181/tcp --permanent firewall-cmd --complete-reload </p><p>5. For this lab we'll open plain HTTP port 8080 as well: </p><p>firewall-cmd --add-port=8080/tcp --permanent firewall-cmd --complete-reload </p><p>6. By default, vProtect console running on HTTPS port (8181), there is a script in <br>/opt/vprotect/scriptsdirectory to setup forwarding from port 8181 to 443 for you: </p><p>cd /opt/vprotect/scripts ./ssl_port_forwarding_firewall-cmd.sh </p><p>1. Now you should be able to log into the web console using URL: https://VPROTECT_HOST, where <br>VPROTECT_HOSTis hostname or IP of your vProtect Server </p><p>by default vProtect has one admin account - adminwith password vPr0tect(with zero) </p><p></p><ul style="display: flex;"><li style="flex:1"><strong>Attribute </strong></li><li style="flex:1"><strong>Value </strong></li></ul><p></p><p>3 / 31 </p><ul style="display: flex;"><li style="flex:1">vPro-1085-R - Storware vProtect - Implementation &amp; Administration Lab Exercises - v7.md </li><li style="flex:1">2/24/2021 </li></ul><p></p><p></p><ul style="display: flex;"><li style="flex:1"><strong>Attribute </strong></li><li style="flex:1"><strong>Value </strong></li></ul><p></p><p>vProtect Web UI </p><p><a href="/goto?url=https://10.41.0.4" target="_blank">https://10.41.0.4 </a></p><p>vProtect Web UI username&nbsp;admin vProtect Web UI password&nbsp;vPr0tect </p><p>vProtect Node installation </p><p>vProtect Node is component that executes all tasks. It can be installed together with Server (it is common to have 1 server and just 1 node). More nodes can be always added later. </p><p><strong>Local node </strong></p><p>1. Create a directory mkdir /vprotect_data- will be later used as a mount point for staging space </p><p>mkdir /vprotect_data </p><p>2. Install vprotect-node using DNF: </p><p>dnf -y install vprotect-node </p><p>3. Register node with NODE_NAMEof your choice ADMIN_USERuser name which you would like to use and <br>URL to vProtect API and provide password when prompted: </p><p>Syntax: </p><p>vprotect node -r NODE_NAME ADMIN_USER http(s)://VPROTECT_SERVER:PORT/api </p><p>In our case we'll use HTTP to make this lab simpler local node (installed to together with server is going to be used RHV) - over HTTP (port 8080): </p><p><a href="/goto?url=http://localhost:8080/api" target="_blank">vprotect node -r node-local admin http://localhost:8080/api </a></p><p>use an admin password - vPr0tect <br>4. Start vProtect Node: </p><p>systemctl start vprotect-node </p><p>4 / 31 </p><ul style="display: flex;"><li style="flex:1">vPro-1085-R - Storware vProtect - Implementation &amp; Administration Lab Exercises - v7.md </li><li style="flex:1">2/24/2021 </li></ul><p></p><p>Now you should be able to see new entry in Nodesection of vProtect Web UI with your node in RUNNING state. </p><p>5. Run script to configure OS for Node: </p><p>vprotect-node-configure </p><p>6. Reboot vProtect VM to apply OS-specific settings: </p><p>reboot </p><p>vProtect is installed </p><p>Lab 3 - Initial configuration </p><p>1. Upload your license key: download it first to your proxy machine desktop from the location provided during labs log in to the vProtect Web UI and go to the Settings -&gt; Licenseand upload your </p><p>license.keyfile </p><p>2. Run from vProtect Web UI Dashboard -&gt; Configuration wizard: 3. Define RHV manager - oVirt (v4) / RHV (v4) / Oracle Linux VM (credentials provided during classes) </p><p><strong>Attribute Value </strong></p><p>RHV manager UI&nbsp;<a href="/goto?url=https://rhv-m.storware.lab/ovirt-engine/api" target="_blank">https://rhv-m.storware.lab/ovirt-engine/api </a></p><p>RHV user </p><p>admin@internal St0rL@bs </p><p>RHV password </p><p>select DISK_IMAGE_TRANSFERstrategy </p><p>confirm to initiate inventory synchronization when asked <br>4. Create <strong>File System </strong>backup destination: </p><p>name: FS with deduplication </p><p>retention: defaults </p><p><strong>Enable deduplication</strong>: </p><p>deduplication device: /dev/sdb </p><p>enable <strong>Mount deduplicated file system... Deduplicated file system mount point</strong>: /vprotect_data(we want this file system to act </p><p>also as a staging space) on the next screen set <strong>Storage path </strong>to /vprotect_data/backups- backup destination still must have different path from than staging (even when using same file system for both) </p><p>5 / 31 </p><ul style="display: flex;"><li style="flex:1">vPro-1085-R - Storware vProtect - Implementation &amp; Administration Lab Exercises - v7.md </li><li style="flex:1">2/24/2021 </li></ul><p></p><p>leave <strong>Encryption </strong>and <strong>Pre/Post access commands </strong>- <strong>DISABLED </strong>set it as a <strong>default </strong>on the last subscreen and <strong>Create </strong></p><p>5. In SSH console - verify your backup destination creation has completed successfully with the: dfcommand to check if it is mounted in /vprotect_datadirectory vdostatsto see if VDO device has been initialized and is ready </p><p>6. Go back to the wizard 7. Skip VM backup schedule section 8. Skip VM backup policy section 9. Configure daily vProtect DB backups (schedule and policy) using node and backup destination that have been created </p><p>10. Confirm to initiate vProtect DB backup when asked 11. Now go to Users section - to set admin accounts: make sure to set the correct <strong>time zone </strong>for your user - default adminaccount has <strong>UTC </strong>by default. <br>12. Create another admin account: click Create in Users section provide username, first name, last name, time zone and language click Save button </p><p>Lab 4 - Managing node configuration </p><p>1. Log in to vProtect Web UI 2. Go to Nodes -&gt; Node Configurations tab 3. Create a new configuration provide a name of your choice change maximum number of export threads to 2 in Task tab assign your FS with deduplication backup destination to the node config </p><p>4. Update node and change node configuration to the one you created (go back to nodes tab) </p><p>Lab 5 - Dell EMC DataDomain as a backup destination </p><p>1. Prepare your PowerProtect DD as a backup destination: </p><p></p><ul style="display: flex;"><li style="flex:1"><strong>Attribute </strong></li><li style="flex:1"><strong>Value </strong></li></ul><p></p><p>DD URL </p><p><a href="/goto?url=https://10.41.0.51/ddem" target="_blank">https://10.41.0.51/ddem </a></p><p>DD username&nbsp;sysadmin DD password&nbsp;St0rL@bs </p><p>6 / 31 </p><ul style="display: flex;"><li style="flex:1">vPro-1085-R - Storware vProtect - Implementation &amp; Administration Lab Exercises - v7.md </li><li style="flex:1">2/24/2021 </li></ul><p></p><p>login to PowerProtect DD and verify you have Storage Unit called vprotectbackup go to data management -&gt; MTree on the left menu download BoostFS RPM from URL provided during labs </p><p><a href="/goto?url=http://10.40.0.253:8181/vprotect/current/lab-" target="_blank">curl -O http://10.40.0.253:8181/vprotect/current/lab- </a>materials/DDBoostFS-7.0.0.0-633922.rhel.x86_64.rpm </p><p>install BoostFS: </p><p>rpm -ivh DDBoostFS-7.0.0.0-633922.rhel.x86_64.rpm </p><p>create mount point directory </p><p>mkdir /dd-backups </p><p>save password for BoostFS (DD_BOOST_IPshould be replaced with IP of your DD): </p><p>/opt/emc/boostfs/bin/boostfs lockbox set -d DD_BOOST_IP -u vprotect -s vprotectbackup </p><p>provide password: St0rL@bs add /etc/fstab entry: </p><p>DD_BOOST_IP:/vprotectbackup /dd-backups boostfs defaults,_netdev,bfsopt(allow-others=true) 0 0 </p><p>Notice that for manual, one-time mount you can run this command: </p><p>/opt/emc/boostfs/bin/boostfs mount -o allow-others=true -d DD_BOOST_IP -s vprotectbackup /dd-backups </p><p>mount </p><p>mount -a </p><p>7 / 31 </p><ul style="display: flex;"><li style="flex:1">vPro-1085-R - Storware vProtect - Implementation &amp; Administration Lab Exercises - v7.md </li><li style="flex:1">2/24/2021 </li></ul><p></p><p>set ownership to vprotect user on directory /dd-backups: </p><p>chown vprotect:vprotect -R /dd-backups </p><p>confirm with dfthat your /dd-backups create backup subdirectories that we will need in the next steps </p><p>mkdir /dd-backups/short-term mkdir /dd-backups/long-term </p><p>1. Log in to vProtect Web UI 2. Go to Backup Destinations tab 3. Create a new <strong>File System </strong>backup destination - in the details: </p><p>provide name: short-term destination </p><p>specify retention days for full and incremental backups = 14 days specify retention versions for full backups = 2 specify retention versions for incremental backups = 7 </p><p>set path as /dd-backups/short-term </p><p>assign this node config that you have created in your previous lab explore other options in the settings </p><p>4. Create a new <strong>File System </strong>backup destination - in the details: </p><p>provide name: long-term destination </p><p>specify retention days for full and incremental backups = 365 days specify retention versions for full backups = 999 specify retention versions for incremental backups = 999 </p><p>set path as /dd-backups/long-term </p><p>assign this node config that you have created in your previous lab explore other options in the settings </p><p>5. Go to Settings -&gt; Internal DB backup -&gt; Overview (click on details icon) 6. Run backup manually (top right corner) specify your new backup destination as a target and proceed with backup <br>7. Verify that backup has been successfully stored refresh backup list in the view when completed <br>8. Check backup details in Backups tab and show its details (notice backup files listed) 9. Explore contents of the /dd-backups/short-termfolder (notice how versions are stored) </p><p>8 / 31 </p><ul style="display: flex;"><li style="flex:1">vPro-1085-R - Storware vProtect - Implementation &amp; Administration Lab Exercises - v7.md </li><li style="flex:1">2/24/2021 </li></ul><p></p><p>Lab 6 - Policies &amp; schedules </p><p>Policy </p><p>1. Log in to vProtect Web UI 2. Go to Virtual Environment -&gt; Backup SLAs tab 3. Create new backup policy </p><p>name: Production VMs </p><p>enable auto-assignment - mode Assign only add rule based regular expressions - .*[Aa]lpine.*- matches all VMs with substring Alpineor </p><p>alpine </p><p>Go to Rule and Select Backup Destination <br>4. Save Policy 5. Go to Hypervisor Managers tab in the Infrastructure section 6. Run inventory synchronization on your RHV environment 7. Verify that all your RHV VMs have been assigned to the policy </p><p>Schedules </p><p>1. Go to Virtual Environment -&gt; Backup SLAs tab 2. Change tab to Schedules 3. Create a schedule for full backup: </p><p>name: Production VMs - Full </p><p>backup type: Full time: 22:00 days of week: just Sunday choose policy on the right: Production VMs </p><p>4. Create a schedule for incremental backup: </p><p>name: Production VMs - Incremental </p><p>backup type: Incremental time: 22:00 days of week: just Monday-Saturday choose policy on the right: Production VMs </p><p>5. Go to the Virtual Environments 6. Verify that you have your VMs marked as outdated </p><p>Lab 7 - VM Backup &amp; Recovery </p><p>Backup </p><p>9 / 31 </p><ul style="display: flex;"><li style="flex:1">vPro-1085-R - Storware vProtect - Implementation &amp; Administration Lab Exercises - v7.md </li><li style="flex:1">2/24/2021 </li></ul><p></p><p>1. Log in to vProtect Web UI 2. Go to Virtual Environments -&gt; Instances 3. Click backup button (on the right) near the VM that resides on RHV <br>If you are unsure, click on the name of the virtual machine to enter the details of vm. In the upper right corner you will see the name of the hypervisor </p><p>4. Leave Fullbackup as the backup type 5. Run backup 6. Verify if it has succeeded 7. Go to Virtual Environment -&gt; Instances details of your VM <br>Backup history tab - look for entry related to the backup that has just been created Snapshots tab - look for the snapshot that has just been created and check if it has been marked </p><p>as Current for incremental </p><p>8. Go to the dashboard and check values of the used space size and charts 9. Go to the the RHV console </p><p></p><ul style="display: flex;"><li style="flex:1"><strong>Attribute </strong></li><li style="flex:1"><strong>Value </strong></li></ul><p></p><p>RHV manager UI&nbsp;<a href="/goto?url=https://rhv-m.storware.lab/ovirt-engine" target="_blank">https://rhv-m.storware.lab/ovirt-engine </a></p><p>RHV user </p><p>admin </p><p>RHV password </p><p>St0rL@bs </p><p>10. Log in as adminand go to Events tab check recent activity related to snapshots go to the Compute -&gt; Virtual Machines -&gt; VM that you have backed up -&gt; Snapshots verify that snapshot has been left for future incremental backups </p><p>Restore </p><p>1. Go back to the vProtect and try to restore VM: <br>Virtual Environments instances list - button on the right select your hypervisor manager and default storage leave rest of the fields with defaults <br>2. Once the job completes, check if it has succeeded and verify again in your RHV console that VM is present </p><p>Lab 8 - VMs details &amp; settings </p><p>Virtual environments details </p><p>1. Log in to vProtect Web UI </p><p>10 / 31 </p><ul style="display: flex;"><li style="flex:1">vPro-1085-R - Storware vProtect - Implementation &amp; Administration Lab Exercises - v7.md </li><li style="flex:1">2/24/2021 </li></ul><p></p><p>2. Go to VM that resides on the RHV that has been previously backed up 3. Browse through charts at the top - activities / backup size / backup time / restore time 4. Go to the Settings verify which Settings are available for RHV VMs </p><p>Lab 9 - Pre/Post snapshot command execution </p><p>In this lab we'll simulate remote command execution before and after snapshot takes place. Usually you would execute commands on the remote host, but to skip unnecessary steps required to setup network, we'll execute commands on the 127.0.0.1(which is basically node which executes commands) </p><p>1. Log in to vProtect Web UI 2. Go the the VM settings running on RHV 3. in Pre snapshot command execution: </p><p>enable it add command argument: /bin/bash add command argument: -c </p><p>add command argument: ip a &gt; /tmp/PRE-SNAPSHOT </p><p>1. in Post snapshot command execution: enable it add command argument: /bin/bash add command argument: -c </p><p>add command argument: hostname &gt; /tmp/POST-SNAPSHOT </p><p>1. in Settings -&gt; SSH access tab: <br>SSH host - 127.0.0.1 SSH user - root </p><p>click <strong>Save </strong></p><p>1. in Change SSH password tab: </p><p>SSH password - St0rL@bs- you need to click <strong>Change ssh password </strong></p><p>1. Run backup with the button at the top-right corner 2. We need to Login with SSH to the vProtect Server and Node operating system and verify if files <br>/tmp/PRE-SNAPSHOTand /tmp/POST-SNAPSHOTare present and check their contents </p><p>Lab 10 - File-level restore </p><p>Automatic mount </p><p>1. Log in to vProtect Web UI 2. Go to the Virtual Environments tab 3. For the VM running on RHV that you have backed up previously select mount (3rd icon) </p><p>4. Select <strong>Mount filesystems automatically </strong>and node-local </p><p>5. Run the job and once it completes go to the Mounted Backups tab in the Virtual Environments section 6. Click magnifying glass icon to go to the details </p><p>11 / 31 </p><ul style="display: flex;"><li style="flex:1">vPro-1085-R - Storware vProtect - Implementation &amp; Administration Lab Exercises - v7.md </li><li style="flex:1">2/24/2021 </li></ul><p></p><p>7. At the bottom you should be able to see single File System entry - corresponding to the root file system <br>8. Click browse 9. Navigate to /etc/passwdfile, select file and click Download button <br>10. Verify that contents ZIP archive contain the file you restored 11. Log in to the node-localusing SSH and navigate to the mount point of the mounted backup - by </p><p>default in /mnt/vprotect </p><p>12. Check if you are able to list files in this directory 13. Go to Virtual Environments -&gt; Mounted Backups -&gt; click Delete icon on the right of the mounted backup and wait for task to complete <br>14. Refresh the page and make sure backup is no longer on the list </p><p>Manual mount </p><p>1. Log in to vProtect Web UI 2. Go the the Virtual Environments tab 3. For the VM running on RHV that you have backed up previously select mount (3-rd icon) </p><p>4. Select <strong>Specify filesystems to be mounted </strong>and node-local </p><p>5. Select just first file system on the list and accept default values for rest of the parameters 6. Run the job and once it completes go to the Mounted Backups tab 7. Click magnifying glass icon to go to the details 8. At the bottom you should be able to see single File System entry - corresponding to the selected file system <br>9. Click browse <br>10. Navigate to /etc/passwdfile, select file and click Download button 11. Go to Virtual Environments -&gt; Mounted Backups -&gt; click Delete icon on the right of the mounted backup and wait for task to complete <br>12. Refresh the page and make sure backup is no longer on the list </p><p>iSCSI share (Linux) </p><p>1. Log in to the node-localover SSH and check what is IQN of this iSCSI client </p><p>cat /etc/iscsi/initiatorname.iscsi </p><p>2. Log in to vProtect Web UI 3. Go the the Virtual Environments -&gt; Instances tab 4. For the VM running on RHV that you have backed up previously select mount (3-rd icon) </p><p>5. Select <strong>Share drives over iSCSI </strong>and node-local </p><p>6. Select just first disk on the list 7. Click <strong>Add Client </strong>and provide IQN that you have found on the node-local 8. Accept default values for rest of the params and run the job </p><p>12 / 31 </p><ul style="display: flex;"><li style="flex:1">vPro-1085-R - Storware vProtect - Implementation &amp; Administration Lab Exercises - v7.md </li><li style="flex:1">2/24/2021 </li></ul><p></p><p>9. Once it completes login with SSH to the node-localagain <br>Discover iSCSI targets </p><p>iscsiadm --mode discovery --type sendtargets --portal NODE_LOCAL_IP </p><p>Login to iSCSI target (change target name to match yours of the target) </p><p>iscsiadm --mode node --targetname iqn.2013-03.storware.eu:216b66a1- 9797-41e6-a1f6-a74f767dfc60 --portal NODE_LOCAL_IP --login </p><p>Verify block device is present </p><p>lsblk </p><p>10. Go to Virtual Environments -&gt; Mounted Backups -&gt; click Delete icon on the right of the mounted backup and wait for task to complete </p><p>11. Refresh the page and make sure backup is no longer on the list </p><p>Lab 11 - Snapshot Management </p><p>1. Log in to vProtect Web UI 2. Go the the Virtual Environments -&gt; Snapshots SLAs tab 3. Create new policy with the name RHV-1d 4. Leave auto-assignment disabled 5. In Virtual Environments section - assign VM that you previously backed up on RHV environment 6. In Rule section specify: <br>Retention versions: 2 Retention days: 1 <br>7. Save policy 8. Now create a schedule that will periodically create snapshots - go to the Virtual Environments -&gt; <br>Snapshots SLAs section and then change tab to Schedules <br>9. Click <strong>Create </strong>button and select <strong>Interval </strong>as Schedule execution type </p><p>10. Set time of interval to <strong>08:00-16:00</strong>, frequency: <strong>every 180 minutes </strong></p><p>11. Change days of week for <strong>Friday </strong>12. Select policy that you have just created 13. Go to the Virtual Environments -&gt; Instances VM you selected 14. In the details -&gt; top right corner there should be additional Snapshot icon (camera) 15. Click it, so that snapshot task appears 16. Verify if snapshot has been created in RHV (Compute -&gt; Virtual Machines -&gt; Snapshots tab of this VM) 17. Submit 2 more snapshot tasks 18. Verify in RHV client that first snapshot has been removed </p>

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    31 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us