.nh .TH podman-volume-create 1 .SH "نام (NAME)" podman-volume-create \- ایجاد یک حجم جدید .SH "خلاصه دستور (SYNOPSIS)" \fBpodman volume create\fP [\fIگزینه‌ها\fP] [\fIنام\fP] .SH "توضیحات (DESCRIPTION)" یک حجم (volume) خالی ایجاد کرده و آن را برای استفاده توسط کانتینرها آماده می‌سازد. حجم می‌تواند با یک نام مشخص ایجاد شود؛ در صورت تعیین نشدن نام، یک نام تصادفی تولید می‌شود. می‌توانید با استفاده از پرچم \fB--label\fP فراداده به حجم اضافه کنید و گزینه‌های درایور را با پرچم \fB--opt\fP تنظیم نمایید. .SH "گزینه‌ها (OPTIONS)" .SS \fB--driver\fP, \fB-d\fP=\fIdriver\fP نام درایور حجم را مشخص می‌کند (پیش‌فرض \fBlocal\fP). دو درایور توسط خود پادمن پشتیبانی می‌شوند: \fBlocal\fP و \fBimage\fP\&. .PP درایور \fBlocal\fP به‌طور پیش‌فرض از یک دایرکتوری روی دیسک به عنوان پشتیبان استفاده می‌کند، اما در صورت تعیین \fB--opt\fP می‌تواند از دستور \fBmount(8)\fP نیز برای سوار کردن یک سیستم‌فایل به عنوان حجم استفاده کند. .PP درایور \fBimage\fP از یک ایمیج به عنوان فضای ذخیره‌سازی پشتیبان حجم استفاده می‌کند. یک سیستم‌فایل overlay ایجاد می‌شود که اجازه می‌دهد تغییرات اعمال‌شده در حجم، به عنوان یک لایه جدید روی ایمیج ثبت (commit) شوند. .PP با استفاده از مقداری غیر از \fBlocal\fP یا \fBimage\fP، پادمن تلاش می‌کند حجم را با استفاده از افزونه‌ای به همین نام ایجاد کند. چنین افزونه‌هایی باید در بخش \fBvolume_plugins\fP از فایل پیکربندی \fBcontainers.conf(5)\fP تعریف شده باشند. .SS \fB--gid\fP=\fIgid\fP شناسه گروهی (GID) که حجم با آن ایجاد می‌شود را تعیین می‌کند. برخلاف \fB--opt o=gid=*gid*\fR، مقدار تعیین‌شده به عملیات mount ارسال نمی‌شود. مقدار GID مشخص‌شده مالک دایرکتوری نقطه اتصال حجم خواهد بود و بر عملیات chown حجم اثر می‌گذارد. .SS \fB--help\fP چاپ راهنمای استفاده .SS \fB--ignore\fP در صورت وجود داشتن حجمی با نام مشخص‌شده، خطا نده و صرفاً نام آن را چاپ کن. توجه داشته باشید که گزینه‌های جدید بر روی حجم موجود اعمال نخواهند شد. .SS \fB--label\fP, \fB-l\fP=\fIlabel\fP تنظیم فراداده برای حجم (مانند \fB--label mykey=value\fR). می‌تواند چندین بار استفاده شود. این برچسب‌ها در \fBpodman volume inspect\fR یا \fBpodman volume ls\fR قابل مشاهده هستند. .SS \fB--opt\fP, \fB-o\fP=\fIoption\fP تنظیم گزینه‌های اختصاصی درایور. برای درایور پیش‌فرض (\fBlocal\fP)، این گزینه اجازه می‌دهد یک حجم برای سوار کردن سیستم‌فایلی روی میزبان پیکربندی شود. .PP برای درایور \fBlocal\fR گزینه‌های زیر پشتیبانی می‌شوند: \fBtype\fR، \fBdevice\fR، \fBo\fR و \fB[no]copy\fR\&. .IP \(bu 2 گزینه \fBtype\fR نوع سیستم‌فایل مورد نظر برای اتصال را تعیین می‌کند و معادل پرچم \fB-t\fR در \fBmount(8)\fP است. .IP \(bu 2 گزینه \fBdevice\fR دستگاه مورد نظر برای اتصال را تعیین می‌کند و معادل آرگومان \fBdevice\fR در \fBmount(8)\fP است. .IP \(bu 2 گزینه \fBcopy\fR کپی کردن فایل‌ها از مسیر ایمیج کانتینر (که نقطه اتصال در آن ساخته شده) به حجم تازه ایجادشده در نخستین اجرا را فعال می‌سازد. \fBcopy\fR حالت پیش‌فرض است. .PP گزینه \fBo\fR گزینه‌های اتصال (mount) را تنظیم می‌کند و معادل گزینه‌های سیستم‌فایل (همان \fB-o\fR) ارسالی به \fBmount(8)\fP است، با استثنائات زیر: .IP \(bu 2 گزینه \fBo\fR از گزینه‌های \fBuid\fR و \fBgid\fR برای تنظیم UID و GID حجم ساخته‌شده پشتیبانی می‌کند که معمولاً توسط \fBmount(8)\fP پشتیبانی نمی‌شوند. .IP \(bu 2 گزینه \fBo\fR از گزینه \fBsize\fR برای تنظیم حداکثر اندازه حجم ساخته‌شده، گزینه \fBinodes\fR برای تعیین حداکثر تعداد inodeهای حجم، و \fBnoquota\fR برای غیرفعال‌سازی کامل سهمیه‌بندی حتی جهت رهگیری مصرف دیسک پشتیبانی می‌کند. گزینه \fBsize\fR روی سیستم‌فایل‌های "tmpfs" و "xfs[note]" پشتیبانی می‌شود. گزینه \fBinodes\fR روی سیستم‌فایل‌های "xfs[note]" پشتیبانی می‌شود. نکته: سیستم‌فایل‌های xfs باید با پرچم \fBprjquota\fR که در صفحه راهنمای \fBxfs_quota(8)\fP توضیح داده شده سوار شوند. در غیر این صورت پادمن خطا خواهد داد. .IP \(bu 2 گزینه \fBo\fR از به‌کارگیری گزینه‌های حجم غیر از UID/GID با درایور \fBlocal\fP پشتیبانی می‌کند و نیازمند دسترسی ریشه (root) است. .IP \(bu 2 گزینه \fBo\fR از گزینه \fBtimeout\fR پشتیبانی می‌کند که به کاربر اجازه می‌دهد مهلت زمانی درایور را پیش از شکست در ایجاد حجم بر حسب ثانیه تنظیم کند. برای نمونه، \fB--opt=o=timeout=10\fP مهلت زمانی درایور را روی ۱۰ ثانیه قرار می‌دهد. .PP \fB\fIنکته\fP\fP گزینه ایجاد \fB--opt,-o\fR را با گزینه مانت \fB-o\fR اشتباه نگیرید. برای نمونه در \fBpodman volume create\fR، از \fB-o=o=uid=1000\fR استفاده کنید \fIنه\fP \fB-o=uid=1000\fR\&. .PP برای درایور \fBimage\fP، تنها گزینه پشتیبانی‌شده \fBimage\fR است که ایمیج مبنای حجم را مشخص می‌کند. هنگام استفاده از درایور \fBimage\fP، این گزینه الزامی است. .PP هنگامی که از درایورهای \fBlocal\fP و \fBimage\fP استفاده نشود، گزینه‌های داده‌شده مستقیماً به افزونه حجم ارسال می‌شوند. در این حالت، گزینه‌های پشتیبانی‌شده توسط همان افزونه تعیین می‌شوند نه پادمن. .SS \fB--uid\fP=\fIuid\fP شناسه کاربری (UID) را که حجم با آن ایجاد می‌شود تعیین می‌کند. برخلاف \fB--opt o=uid=*uid*\fR، مقدار تعیین‌شده به عملیات mount منتقل نمی‌شود. مقدار UID مشخص‌شده مالک دایرکتوری نقطه اتصال حجم خواهد بود و بر عملیات chown حجم اثر می‌گذارد. .SH "سهمیه‌بندی‌ها (QUOTAS)" دستور \fBpodman volume create\fR از \fBکنترل‌های سهمیه‌بندی پروژه XFS\fR برای کنترل اندازه و تعداد inodeهای حجم‌های توکار استفاده می‌کند. دایرکتوری مورد استفاده برای ذخیره‌سازی حجم‌ها باید یک سیستم‌فایل \fBXFS\fR باشد و با گزینه \fBpquota\fR سوار شده باشد. .PP نمونه مدخل در /etc/fstab: .EX /dev/podman/podman-var /var xfs defaults,x-systemd.device-timeout=0,pquota 1 2 .EE .PP پادمن برای هر حجم توکار شناسه‌های پروژه تولید می‌کند، اما این شناسه‌های پروژه برای سیستم‌فایل XFS باید یکتا باشند. این شناسه‌های پروژه به‌طور پیش‌فرض به‌صورت تصادفی تولید می‌شوند که امکان همپوشانی با سایر سهمیه‌ها در همان سیستم‌فایل را دارد. .PP ابزار xfs_quota می‌تواند برای تخصیص یک شناسه پروژه به دایرکتوری درایور ذخیره‌سازی استفاده شود، مانند: .EX echo 100000:/var/lib/containers/storage/overlay >> /etc/projects echo 200000:/var/lib/containers/storage/volumes >> /etc/projects echo storage:100000 >> /etc/projid echo volumes:200000 >> /etc/projid xfs_quota -x -c 'project -s storage volumes' / .EE .PP در مثال بالا، ما درایور ذخیره‌سازی overlay را برای کانتینرها و همچنین حجم‌های تازه‌ساخته‌شده به‌گونه‌ای پیکربندی می‌کنیم که از شناسه‌های پروژه با یک \fBآفست شروع (start offset)\fP استفاده کنند. به همه کانتینرها شناسه‌های پروژه بزرگ‌تر (برای نمونه >= 100000) اختصاص می‌یابد. به همه حجم‌ها شناسه‌های پروژه بزرگ‌تر با شروع از 200000 اختصاص داده می‌شود. این کار از تداخلات مدیریتی xfs_quota با containers/storage جلوگیری می‌کند. .SH "مثال‌ها (EXAMPLES)" ایجاد حجم خالی: .EX $ podman volume create .EE .PP ایجاد حجم نام‌دار خالی: .EX $ podman volume create myvol .EE .PP ایجاد حجم نام‌دار خالی با برچسب مشخص: .EX $ podman volume create --label foo=bar myvol .EE .PP ایجاد حجم نام‌دار tmpfs با اندازه و گزینه‌های اتصال مشخص: .EX # podman volume create --opt device=tmpfs --opt type=tmpfs --opt o=size=2M,nodev,noexec myvol .EE .PP ایجاد حجم نام‌دار tmpfs به نام testvol با گزینه‌های مشخص: .EX # podman volume create --opt device=tmpfs --opt type=tmpfs --opt o=uid=1000,gid=1000 testvol .EE .PP ایجاد حجم با بازنویسی UID و GID مالک: .EX # podman volume create --uid 1000 --gid 1000 myvol .EE .PP ایجاد حجم نام‌دار مبتنی بر ایمیج با استفاده از ایمیج محلی مشخص‌شده در containers/storage: .EX # podman volume create --driver image --opt image=fedora:latest fedoraVol .EE .SH "مثال‌های اتصال (MOUNT EXAMPLES)" دستور \fBpodman volume create\fR اجازه می‌دهد گزینه‌های \fBtype\fR، \fBdevice\fR و \fBo\fR هنگام استفاده از درایور \fBlocal\fR به \fBmount(8)\fR ارسال شوند. .SH s3fs-fuse سامانه s3fs-fuse یا به اختصار \fBs3fs\fR، یک سیستم‌فایل FUSE است که امکان می‌دهد پیشوندهای s3 به عنوان نقاط اتصال سیستم‌فایل سوار شوند. .PP \fBنصب:\fP .EX $ doas dnf install s3fs-fuse .EE .PP \fBاستفاده ساده:\fP .EX $ s3fs --help $ s3fs -o use_xattr,endpoint=aq-central-1 bucket:/prefix /mnt .EE .PP \fBمعادل از طریق \fBmount(8)\fR\fP .EX $ mount -t fuse.s3fs -o use_xattr,endpoint=aq-central-1 bucket:/prefix /mnt .EE .PP \fBمعادل از طریق \fBpodman volume create\fR\fP .EX $ podman volume create s3fs-fuse-volume -o type=fuse.s3fs -o device=bucket:/prefix -o o=use_xattr,endpoint=aq-central-1 .EE .PP \fBسپس می‌توان حجم را با دستور زیر در یک کانتینر سوار کرد:\fP .EX $ podman run -v s3fs-fuse-volume:/s3:z --rm -it fedora:latest .EE .PP لطفاً گزینه‌های موجود را در ویکی آن‌ها مشاهده کنید. .SS "استفاده با سایر کاربران کانتینر" مثال بالا به این دلیل کار می‌کند که حجم با کاربر میزبان سوار شده و درون کانتینر، کاربر \fBroot\fR به کاربر در میزبان نگاشت شده است. .PP اگر نقطه اتصال توسط کاربر متفاوتی در داخل کانتینر در دسترس قرار گیرد، خطای "Permission denied" صادر خواهد شد. .EX $ podman run --user bin:bin -v s3fs-fuse-volume:/s3:z,U --rm -it fedora:latest $ ls /s3 # ls: /s3: Permission denied .EE .PP در سامانه‌های FUSE، نقاط اتصال برای کاربری که آن‌ها را سوار کرده محافظت می‌شوند؛ اگر کاربران دیگر نیاز به دسترسی دارند، گزینه مانت \fBallow_other\fR را مشخص کنید. > نکته: این کار تدابیر امنیتی عادی fuse را در نقطه اتصال حذف می‌کند و پس از آن، مجوزهای معمولی سیستم‌فایل باید از آن محافظت کنند. .EX $ podman volume create s3fs-fuse-other-volume -o type=fuse.s3fs -o device=bucket:/prefix -o o=allow_other,use_xattr,endpoint=aq-central-1 $ podman run --user bin:bin -v s3fs-fuse-volume:/s3:z,U --rm -it fedora:latest $ ls /s3 .EE .SS "پیشوند باید وجود داشته باشد" اگر پیشوند در باکت وجود نداشته باشد، \fBs3fs\fR در سوار شدن با شکست مواجه می‌شود. .PP با قرار دادن یک شیء خالی در کلید \fBprefix/\fR مورد نظر، یک دایرکتوری s3 ایجاد کنید: .EX $ aws s3api put-object --bucket bucket --key prefix/ .EE .PP اگر کارایی و سرعت اولویت است، لطفاً ابزار پرسرعت‌تر goofys را بررسی نمایید. .PP .RS .PP سیستم‌فایل‌های FUSE برای Google Cloud Storage و Azure Blob Storage نیز موجود هستند. .RE .SH "همچنین ببینید (SEE ALSO)" \fBpodman(1)\fP, \fBcontainers.conf(5)\fP, \fBpodman-volume(1)\fP, \fBmount(8)\fP, \fBxfs_quota(8)\fP, \fBxfs_quota(8)\fP, \fBprojects(5)\fP, \fBprojid(5)\fP .SH "تاریخچه (HISTORY)" ژانویه ۲۰۲۰، به‌روزرسانی با اطلاعات افزونه‌های حجم توسط Matthew Heon mheon@redhat.com \[la]mailto:mheon@redhat.com\[ra] نوامبر ۲۰۱۸، در ابتدا توسط Urvashi Mohnani umohnani@redhat.com گردآوری شد \[la]mailto:umohnani@redhat.com\[ra]