{"id":181,"date":"2009-12-31T17:11:05","date_gmt":"2009-12-31T09:11:05","guid":{"rendered":"http:\/\/www.sysadmindayph.com\/blog\/?p=181"},"modified":"2009-12-31T17:11:43","modified_gmt":"2009-12-31T09:11:43","slug":"veritas-volume-manager-vxvm-basics-commands-cheats","status":"publish","type":"post","link":"https:\/\/www.sysadmindayph.com\/blog\/veritas-volume-manager-vxvm-basics-commands-cheats\/","title":{"rendered":"Veritas Volume Manager VxVM Basics Commands Cheats"},"content":{"rendered":"<p>Veritas Volume Manager <a href=\"http:\/\/www.sysadmindayph.com\/blog\/veritas-volume-manager-vxvm-basics-commands-cheats\/\">VxVM Basics Commands Cheats<\/a>.. The authority site for this topic, the VXVM on VXFS, if you do a Google search for any tutorial or command cheat sheet is Cuddletech.<\/p>\n<p>I want to post&#8230; say, borrowing, the content of that page to this post for my own personal reference&#8230; Love your own page right? And since I am more likely to open SysadminPH that cuddletech, I thought we not copy the Veritas tutorial page here for my ease of access?<\/p>\n<p><!--more--><\/p>\n<p>  The Cuddletech Veritas Cheat Sheet<\/p>\n<p>\t\tby: B. Rockwood<br \/>\n\t      benr@cuddletech.com<\/p>\n<p>Overview:<br \/>\n&#8212;&#8212;&#8211;<\/p>\n<p>        The purpose of this paper is to<br \/>\nquickly get you up to speed in Veritas,<br \/>\nand to act as a quick referance.  All new<br \/>\nusers to Veritas are HIGHLY encouraged to<br \/>\nfirst read the Veritas users guides enlucded<br \/>\nwith Veritas, and found on docs.sun.com<\/p>\n<p>Remember!: Almost all commands can use several<br \/>\n        diffrent options that are similar<br \/>\n        across all commands.  The most used<br \/>\n        of these is &#8220;-g <diskgroup>&#8221; which<br \/>\n        specifies which Disk Group the command<br \/>\n        will be executed on.  For instance,<br \/>\n        vxinfo will only display volume information<br \/>\n        for volumes in the rootdg, to see<br \/>\n        volumes in the datadg, for instance, use:<br \/>\n        Ex: &#8220;vxinfo -g datadg&#8221;<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n        DISPLAY and MONITORING<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>vxdisk list<br \/>\n        List all disks used by Veritas (VX).<\/p>\n<p>vxdisk list <diskname><br \/>\n        Display detailed information about a<br \/>\n        single disk, including mutlipathing<br \/>\n        information, size, type, Vx version,<br \/>\n        and more.<\/p>\n<p>vxprint<br \/>\n        Display report style information about<br \/>\n        the current status of all Vx componants,<br \/>\n        including disks, subdisks, plexes, and<br \/>\n        volumes.<\/p>\n<p>vxprint <componant><br \/>\n        Display report style information about<br \/>\n        the current status of ONLY the componant<br \/>\n        you request.  So for instance,<br \/>\n        &#8220;vxprint vol01&#8221; shows information about<br \/>\n        all subcomponants of vol01.  This works<br \/>\n        for plexes, disk groups, etc.<\/p>\n<p>vxprint -hrt<br \/>\n\tDisplay detailed information about all<br \/>\n\tVx componanats, including stwdith,<br \/>\n\tncolumns, offsets, layout type, read-<br \/>\n\tpolicy, and more.  This is best for<br \/>\n\ta true picture of your configuration.<\/p>\n<p>vxdg list<br \/>\n        Display listing and state information<br \/>\n        of all Disk Groups.<\/p>\n<p>vxdg list <diskgroup name><br \/>\n        Display detailed information about<br \/>\n        a diskgroup, including flags, version,<br \/>\n        logs status, etc.<\/p>\n<p>vxinfo<br \/>\n        Display volume status and volume type.<br \/>\n        By default, only displays &#8220;rootdg&#8221;,<br \/>\n        to display a diffrent Disk Group,<br \/>\n        use &#8220;vxinfo -g <dgname>&#8220;.<\/p>\n<p>vxassist maxgrow <volume><br \/>\n        This command will output the maximum size<br \/>\n        the volume specified can increased by,<br \/>\n        specified in sectors.<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n        DISK TASKS and COMMANDS<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>vxdiskadd <devname><br \/>\n        Adds a disk to Vx by Initializing and Encapsolating<br \/>\n        it.  Specified by its device name (ex: c0t1d0s2).<br \/>\n        NOTE: You&#8217;ll need to reboot to finalize the<br \/>\n        disk addition!<\/p>\n<p>        This command, can also be used to add a disk to<br \/>\n        a specified disk group.  Just follow the prompts.<br \/>\n        No reboots needed for changing DG&#8217;s.<\/p>\n<p>vxedit rename <oldname> <newname><br \/>\n        Rename a Vx disk. Ex: &#8220;vxedit rename disk01 disk05&#8221;<\/p>\n<p>vxedit set reserve=on <diskname><br \/>\n        Sets the &#8220;reserve&#8221; flag to a Vx disk.  This<br \/>\n        is used to keep specific disks from being<br \/>\n        accidentally, or generally used.<\/p>\n<p>vxdisk offline <diskname><br \/>\n        Used to &#8220;offline&#8221; a disk.  The disk should<br \/>\n        be removed from its diskgroup before being<br \/>\n        offlined.<\/p>\n<p>vxdisk rm <devname><br \/>\n        Used to remove disks from Vx control completely.<br \/>\n        Ex: &#8220;vxdisk rm c0t1d0s2&#8221;  Make sure to<br \/>\n        removed the disk from its diskgroup, and offline<br \/>\n        the disk before removing it.<\/p>\n<p>vxedit set spare=on <diskname><br \/>\n        Sets the &#8220;spare&#8221; flag to a Vx disk.  This is used<br \/>\n        to make the specified disk a hot spare, which<br \/>\n        is then added to the &#8220;hot spare pool&#8221;.<\/p>\n<p>vxedit set spare=off <diskname><br \/>\n        Same as above but removes the disk from the<br \/>\n        &#8220;hot spare pool&#8221;.<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n        DISK GROUPS and COMMANDS<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>vxdg init <diskgroup> <diskname>=<devname><br \/>\n        Creates a new disk group, and assigns the naming<br \/>\n        scheme to the first disk added to the group.<br \/>\n        ex: &#8220;vxdg init newdg newdg01=c0t10d0s2&#8221;.<br \/>\n        NOTE: This is kinda tricky because the disk that<br \/>\n        you&#8217;re adding can&#8217;t be a member of ANY DG, but<br \/>\n        must be initialized.  It&#8217;s easier to use<br \/>\n        &#8220;vxdiskadd&#8221;, and add the disk to a newdg by<br \/>\n        specifying a new DG name for the DG field.<\/p>\n<p>vxdg deport <diskgroup><br \/>\n        Disabled a diskgroup, but doesn&#8217;t remove it.  Often<br \/>\n        used as an organized pool of disk to realocate, and<br \/>\n        to moved DG&#8217;s from one system to another.<\/p>\n<p>vxdg import <diskgroup><br \/>\n        Reverse of above.  Enables local access to the specified<br \/>\n        disk group.<\/p>\n<p>vxdg -n <newdgname> <olddgname>\n        Change a Disk Groups name.<\/p>\n<p>vxdg list <dgname><br \/>\n        Use this to check the version numbers of Disk<br \/>\n        Groups.  Shows other details about the DG too.<\/p>\n<p>vxdg destroy <dgname><br \/>\n        Removes the specified DG, and frees all its disks<br \/>\n        back to general use by Vx.<\/p>\n<p>-= Quick Chart!: Disk Group Version Number Translation<\/p>\n<p>        VxVM          Introduced                Supported<br \/>\n        Release         Version                 Versions<br \/>\n        &#8212;&#8212;-       &#8212;&#8212;&#8212;&#8212;              &#8212;&#8212;&#8212;<br \/>\n        1.2             10                        10<br \/>\n        1.3             15                        15<br \/>\n        2.0             20                        20<br \/>\n        2.2             30                        30<br \/>\n        2.3             40                        40<br \/>\n        2.5             50                        50<br \/>\n        3.0             60                       20-60<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n        SUBDISKS and COMMANDS<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;                                       <\/p>\n<p>vxmake sd <subdiskname> <disk>,<offset>,<length><br \/>\n        Creates a subdisk with the specified name,<br \/>\n        and by the offset and length specified.<br \/>\n        ex: &#8220;vxmake sd disk02-01 disk02,0,8000&#8221;<br \/>\n        NOTE: If you are going to add this subdisk<br \/>\n        to a plex, its good to check the other<br \/>\n        subdisks in that plex to see what their<br \/>\n        lengths and offsets are, use the command:<br \/>\n        &#8220;vxprint -st&#8221;<\/p>\n<p>vxedit rm <subdiskname><br \/>\n        Removes a subdisk.                       <\/p>\n<p>vxsd assoc <plexname> <subdiskname>,&#8230;.<br \/>\n        Associates the specified subdisks to<br \/>\n        the specified plex.  Example:<br \/>\n        &#8220;vxsd assoc vol01-03 disk01-01,disk02-01&#8221;<br \/>\n        NOTE: Striped volumes are diffrent,<br \/>\n        you need to specify the column# so<br \/>\n        use the following:                                           <\/p>\n<p>vxsd -l <col#\/offset> assoc <plexname> <subdiskname>,&#8230;<br \/>\n        Same as above, but used for associating<br \/>\n\tsubdisks to a striped plex.  Use the command<br \/>\n        &#8220;vxprint -st&#8221; to see what other subdisk<br \/>\n        in the plex look like, and then set the<br \/>\n        new subdisks column number and offset<br \/>\n        (found in the seventh column of output)<br \/>\n        to the appropriate value.<\/p>\n<p>vxsd aslog <plex> <subdiskname><br \/>\n        Adds a log subdisk to the specified plex.<br \/>\n        Ex: &#8220;vxsd aslog vol01-02 disk03-01&#8221; <\/p>\n<p>vxsd dis <subdiskname><br \/>\n        Disassociates the specified subdisk from its<br \/>\n        current plex.                                                      <\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n        PLEXS and COMMANDS<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p>vxmake plex <plexname> sd=<subdiskname>,<subdiskname>,&#8230;.<br \/>\n        Creates a new plex by the name specified and<br \/>\n        assigns the specified subdisks to it.<\/p>\n<p>vxmake plex <plexname> layout=<layout> stwidth=<stwidth> ncolumn=<ncolumn> sd=&#8230;<br \/>\n\tLike above command, but specifies layout type<br \/>\n\tas defined by <layout>, which is used for creation<br \/>\n\tof striped and RAID5 plexes.  The layout is<br \/>\n\tconstrained by the defined number of columns,<br \/>\n\tand stripe width.  Subdisks specified are<br \/>\n\tadded to the created plex.\t<\/p>\n<p>vxplex att <volname> <plexname>\n        Associates specified plex with specified volume.<br \/>\n        (Adds a mirror)<br \/>\n        NOTE: Attachment will take a while.  Watch<br \/>\n        it with Vxtask, or via vxprint<\/p>\n<p>vxplex dis <plexname>\n        Disassociate specified plex from its connected<br \/>\n        volume.<\/p>\n<p>vxedit -r rm <plexname>\n        Remove the plex.<\/p>\n<p>vxmend off <plexname>\n        Offlines a plex for repair to it&#8217;s disks.<\/p>\n<p>vxplex det <plexname>\n        Detaches specified plex from its connected<br \/>\n        volume, but maintians association with it&#8217;s<br \/>\n        volume.  The plex is no longer used<br \/>\n        for I\/O untill it is (re)attached.<\/p>\n<p>vxmend fix clean <plexname>\n        Used to clean plexes that are in the<br \/>\n        &#8220;unclean&#8221; state.  Used with unstartable<br \/>\n        volumes.<\/p>\n<p>vxplex mv <originalplex> <newplex><br \/>\n        Moves the data content from the origonal<br \/>\n        plex onto a new plex.<br \/>\n        NOTE: The old plex must be active (ENABLED).<br \/>\n        The new plex should be the same length, or<br \/>\n        larger than the old plex.  The new plex<br \/>\n        must not be associated with another volume.<br \/>\n        (duh)<\/p>\n<p>vxplex cp <volume> <newplex><br \/>\n        Copies the data from the specified volume<br \/>\n        to a new plex.<br \/>\n        NOTE: The new plex cannot be associated<br \/>\n        with any other volume.  The new plex,<br \/>\n        further, will NOT be attached to<br \/>\n        the specified volume.  (Also, see notes<br \/>\n        from above)<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n        VOLUMES and COMMANDS<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>vxassist make <volumename> <length><br \/>\n        Creates a new volume with the name specified<br \/>\n        and is made to the length specified.<br \/>\n        Ex: &#8220;vxassist make newvol 10m&#8221;<br \/>\n        NOTE: This command will pull disk space<br \/>\n        from the generally avalible Vx disk space.<\/p>\n<p>vxassist make <volname> <length> layout=<layouttype> <disk> <disk> &#8230;.<br \/>\n        Like the above command, but with layout specified.<br \/>\n        The most common layouts are: striped and raid5<br \/>\n        ex: &#8220;vxassist make newvol 100m layout=raid5 disk01 disk02 disk03&#8221;<br \/>\n        NOTE: See the vxassist(1M) man page for more information.<\/p>\n<p>vxmake vol <volname> len=<length> plex=<plexname>,&#8230;<br \/>\n        Creates a new volume of specified length (usually<br \/>\n        in sectors), and attachs the specified plexes to that<br \/>\n        volume.  Useful for creating volumes to house<br \/>\n        copied or moved plexes.<br \/>\n        NOTE: See the vxmake(1M) man page for more information.<\/p>\n<p>vxvol init <state> <volname> [plexname]<br \/>\n        Manually sets the state of a volume.<br \/>\n        NOTE: Not for the squimish.<\/p>\n<p>vxassist maxsize [layout=raid5]<br \/>\n        Returns the maximum size avalible via Vx to create<br \/>\n        a new volume.  By adding &#8220;layout=raid5&#8221; to the command<br \/>\n        the calulations take into account losse due<br \/>\n        to raid5.  Output is in sectors and Megs.<\/p>\n<p>vxassist maxgrow <volname><br \/>\n        Returns the maximum ammount of Vx space that<br \/>\n        can be added to the specified volume.<\/p>\n<p>vxassist mirror <volname><br \/>\n        Creates a mirror for the specified volume.<br \/>\n        NOTE: Think of this as &#8220;handsfree plex creation&#8221;.<br \/>\n        This is fast, but the disks you want used<br \/>\n        may not be used&#8230; often best to do manually.<\/p>\n<p>vxassist addlog <volname><br \/>\n        Adds a Dirty Region Log (DRL) for the specified volume.<\/p>\n<p>vxassist remove log <volname><br \/>\n        Reverse of above.<\/p>\n<p>vxvol start <volname><br \/>\n        Starts a volume<\/p>\n<p>vxvol stop <volname><br \/>\n        Stops a volume.  Alternately you can use command as<br \/>\n        such: &#8220;vxvol stopall&#8221; in order to stop all volumes.<\/p>\n<p>vxassit growto\/growby\/shrinkto\/shrinkby <volname> <length><br \/>\n        Resizes the volume specified.  Use one of the<br \/>\n        following: growto, growby, shrinkto, and shrinkby<br \/>\n        in order to descide what <length> specifies.<br \/>\n        By default length is specified in sectors.<br \/>\n        This does not resize the filesystem inside the volume.<br \/>\n        NOTE: Don&#8217;t shrink volumes to be less that<br \/>\n        its contained filesystem! (duh)<\/p>\n<p>vxvol set len=<length> <volname><br \/>\n        An alternate to above command.  Sets the absolute<br \/>\n        lenths of the specified volume to the length<br \/>\n        specified, by default, in sectors.  This<br \/>\n        does not resize the filesystem inside the volume.<\/p>\n<p>        NOTE: There is also a resize(1M) command, used<br \/>\n        for resizing both volume AND filesytem.  See<br \/>\n        the man page for that one.<\/p>\n<p>vxedit rm <volname><br \/>\n        Removes the specified volume. (poof!)<br \/>\n        NOTE: If the volume specified is in the ENABLED<br \/>\n        state, you will need to use the command<br \/>\n        &#8220;vxedit -f <volname>&#8220;.  Also, using the &#8220;r&#8221;<br \/>\n        with &#8220;f&#8221; will remove all plexes and subdisks<br \/>\n        with the volume.  If you didn&#8217;t guess, &#8220;r&#8221;<br \/>\n        is Recursive, and &#8220;f&#8221; is Force.<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\nMisc Stuff:<\/p>\n<p>To calculate the size of a filesystem inside a volume, use<br \/>\nthe command:<br \/>\n\tfstyp -v <volume-device-path> | head -30 | grep ncg<br \/>\nIgnore the errors.  Output will look this this:<br \/>\n  # fstyp -v \/dev\/vx\/rdsk\/datadg\/vol01 | head -30 | grep ncg<br \/>\n  ncg     17152   size    70254592        blocks  65863396<br \/>\n  # Broken Pipe<br \/>\n  Unknown_fstyp (no matches)<br \/>\nThe size found after the label &#8220;size&#8221; is presented in kilobytes.<br \/>\nYou can convert to sectors by multiplying by 2.<\/p>\n<p>\t\t&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>To calculate the size of a volume, use vxprint, and look for the<br \/>\n&#8220;len&#8221;.  The volume length is in sectors.  Convert to kilobytes<br \/>\nby dividing by 2.<\/p>\n<p>\t\t&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>Volume Growth Procudure:<br \/>\n1) You can use vxassist to estimate the max size of<br \/>\na given volume based on the disks you wish to add:<br \/>\nex: # vxassist -g rootdg maxgrow vol01 disk01 disk02 disk03<\/p>\n<p>2) Next, actually grow the volume (NOT THE FS) via the<br \/>\ncommand (assuming maxgrow outputed 10639360 as the maxsize):<br \/>\nex:# vxassist -g rootdg growto vol01 10639360 disk01 disk02 disk03<\/p>\n<p>3) Now VxVM grinds away, monitor with vxtask.<\/p>\n<p>4) Now Grow the Filesystem, for UFS use:<br \/>\n# \/usr\/lib\/fs\/ufs\/mkfs -F ufs -M \/export \/dev\/vx\/rdsk\/rootdg\/vol01 10639360<\/p>\n<p>for VXFS ufs:<br \/>\n# \/usr\/lib\/fs\/vxfs\/fsadm -b 10639360 -r \/dev\/vx\/rdsk\/rootdg\/vol01 \/mnt<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p>5) Done!<\/p>\n<p>\t&#8212;&#8212;&#8212;-<\/p>\n<p>Changing User\/Group of a Raw Volume: (ex:)<br \/>\n vxedit -g xxxdg set group=dba data_vol_123<br \/>\n vxedit -g xxxdg set user=oracle data_vol_123<\/p>\n<p>Thanks to Ben Rockwood! Cheers!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Veritas Volume Manager VxVM Basics Commands Cheats.. The authority site for this topic, the VXVM on VXFS, if you do a Google search for any tutorial or command cheat sheet is Cuddletech. I want to &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16,5,312],"tags":[316,313,391,315,314],"class_list":["post-181","post","type-post","status-publish","format-standard","hentry","category-commands","category-solaris","category-veritas-volume-manager","tag-diskgroups","tag-veritas","tag-veritas-volume-manager","tag-vxfs","tag-vxvm"],"_links":{"self":[{"href":"https:\/\/www.sysadmindayph.com\/blog\/wp-json\/wp\/v2\/posts\/181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sysadmindayph.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sysadmindayph.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sysadmindayph.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sysadmindayph.com\/blog\/wp-json\/wp\/v2\/comments?post=181"}],"version-history":[{"count":2,"href":"https:\/\/www.sysadmindayph.com\/blog\/wp-json\/wp\/v2\/posts\/181\/revisions"}],"predecessor-version":[{"id":183,"href":"https:\/\/www.sysadmindayph.com\/blog\/wp-json\/wp\/v2\/posts\/181\/revisions\/183"}],"wp:attachment":[{"href":"https:\/\/www.sysadmindayph.com\/blog\/wp-json\/wp\/v2\/media?parent=181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sysadmindayph.com\/blog\/wp-json\/wp\/v2\/categories?post=181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sysadmindayph.com\/blog\/wp-json\/wp\/v2\/tags?post=181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}